Vous écrasez actuellement le contenu de #animal
à chaque itération, de sorte que le dernier élément est affiché. Vous devez concaténer innerHTML
de #animal
pour que les nouveaux éléments soient ajoutés au code HTML existant. Notez également que vous pouvez ajouter du code HTML supplémentaire, par exemple un tag <br/>
, afin de diviser les lignes pour plus de lisibilité.
var myArray = [
['Dog', 'Terrier'],
['Cat', 'Tabby'],
['Horse', 'Shetland'],
];
for (i = 0; i < myArray.length; i++) {
document.getElementById('animal').innerHTML += myArray[i][0] + "</br>";
};
<div id="animal"></div>
Enfin, le balisage pour produire vos animaux ressemble à un emploi pour une liste ordonnée/non ordonnée. De plus comme @kb a souligné, il est préférable d'adopter une approche plus moderne et idiomatiques et utiliser .map
et comme @ gcampbell souligné, insertAdjacentHTML
est plus rapide que innerHTML
var animals = [
['Dog', 'Terrier'],
['Cat', 'Tabby'],
['Horse', 'Shetland'],
];
var animalNames = animals.map(function(animal) {
return "<li>" + animal[0] + "</li>";
})
.join("");
document.getElementById('animal').insertAdjacentHTML('beforebegin', animalNames);
<h3>Animals:</h3>
<ul id="animal"></ul>
Typo: 'locations' ->' myArray'. De plus, utilisez '+ =' pour ajouter, car '= 'écrasera, et utilisera' textContent' au lieu de 'innerHTML' s'il ne s'agit pas de HTML. – Siguza
vous pouvez parcourir votre tableau et affecter tous les éléments à une chaîne, puis l'affecter à l'innerHTML – ElenaDBA
@Seth Soyez prudent avec les modifications de code. Vous pourriez avoir édité le problème de base de la question. – Siguza