<ul class="ul"><li>red</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
<ul class="ul ul-2"><li>red</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
<script type="text/javascript">
var ulArry = document.getElementsByClassName("ul");
for (var i in ulArry) {
ulArry[i].firstChild.style.color = "#FF0000";
}
</script>
La couleur du li a changé, mais pourquoi la console signale-t-elle toujours une erreur ?
ulArry est un objet NodeList. Car in obtient non seulement deux nœuds Dom, mais également la longueur, item(), nomméeItem(). Ainsi, lorsqu'il atteint la longueur, une erreur est signalée.
Vous pouvez imprimer ulArry[i] dans la boucle et voir
Vous pouvez voir pourquoi l'erreur est signalée en regardant l'image, mais quant à la raison pour laquelle il y a une longueur en po, cela vaut la peine d'attendre que l'expert réponde
Mettez le code dans $(function(){}) et essayez-le
for in signalera une erreur mais pas. La deuxième classe ul n'est pas seulement une, mais deux. Il est recommandé de getElementsByTagName
.Veuillez vous assurer que le document est chargé avant de continuer