Tableau Javascript et innerHTML
Je suis tout a commencé avec le JavaScript et j'ai un petit problème.
Comment puis-je utiliser le innerHTML
bien-fondé de modifier le texte dans cet élément:
JS:
(function showArray(){
var names = new Array("Bob ","Alice ","Ceaser ","David");
names.sort();
for (var i = 0; i < names.length; i++) {
document.getElementById("loop").innerHTML = names[i];
//I'm only getting "David" as output!!
}
})();
HTML:
<p id="loop">David Alice Bob Ceaser</p>
- Changement
innerHTML =
àinnerHTML +=
.
Vous devez vous connecter pour publier un commentaire.
Essayer cela, vous avez juste besoin de rejoindre les noms de trop.
JS:
HTML:
innerText
au lieu deinnerHTML
. C'est une bonne habitude qui pourrait vous faire économiser de l'injection de code attaques dans le futur, même s'il n'a pas d'importance dans cet exemple.textContent
.Juste pour le record: votre code peut être réduite à
JS:
HTML:
Dans ce cas, il vaut mieux utiliser
Array.prototype.join
comme suggéré dans @DaveChen réponse.Cependant, vous ne pouvez pas toujours l'utiliser. Pour ces cas:
getElementById
l'intérieur d'une boucle. Au lieu de cela, stocker l'élément dans une variable avant la boucle.innerHTML
à chaque itération. Au lieu de cela, la mise à jour d'une variable de chaîne et de ne modifier que lesinnerHTML
après la boucle.[]
est plus rapide qu'avecArray
constructeur, et c'est plus court.Cependant, notez que l'utilisation de
innerHTML
peut produire html injection. Si vous voulez juste pour ajouter du texte, de mieux utiliser lestextContent
à la place.JS:
HTML: