web-dev-qa-db-fra.com

Définition du texte du bouton via javascript

Je configure un bouton via javascript, mais le bouton n'affiche pas le texte.

Une recommandation sur la façon de le réparer?

var b = document.createElement('button');
b.setAttribute('content', 'test content');
b.setAttribute('class', 'btn');
b.value = 'test value';

var wrapper = document.getElementById(divWrapper);
wrapper.appendChild(b);

Merci!

31
dinnouti

Fondamentalement, utilisez innerHTML au lieu de valeur, car le type de "bouton" que vous ajoutez définit sa valeur dans son innerHTML.

JS:

var b = document.createElement('button');
b.setAttribute('content', 'test content');
b.setAttribute('class', 'btn');
b.innerHTML = 'test value';

var wrapper = document.getElementById("divWrapper");
wrapper.appendChild(b);

ressemble à ceci dans le DOM:

<div id="divWrapper">
    <button content="test content" class="btn">test value</button>
</div>

Démo: http://jsfiddle.net/CuXHm/

49
Stevie

La valeur d'un élément bouton n'est pas le texte affiché, contrairement à ce qui arrive aux éléments input de type bouton.

Tu peux le faire :

 b.appendChild(document.createTextNode('test value'));

Démonstration

12
Denys Séguret

Créez un nœud de texte et ajoutez-le à l'élément bouton:

var t = document.createTextNode("test content");
b.appendChild(t);
4
Rick Viscomi

Définissez le texte du bouton en définissant le innerHTML

var b = document.createElement('button');
b.setAttribute('content', 'test content');
b.setAttribute('class', 'btn');
b.innerHTML = 'test value';

var wrapper = document.getElementById('divWrapper');
wrapper.appendChild(b);

http://jsfiddle.net/jUVpE/

1
cgatian