I have a JS foreach function like below:
Edit: my minimal reproducible example
var liArray = document.getElementsByClassName("listItem");
liArray.forEach(function(item) {
if (item.getAttribute("data-code").substring(0, 2) == 15) {
console.log("success");
}
});
<ul>
<li class="item>
<div data-code="151" class="listItem">example</div>
</li>
<li class="item>
<div data-code="152" class="listItem">example</div>
</li>
<li class="item>
<div data-code="153" class="listItem">example</div>
</li>
<li class="item>
<div data-code="154" class="listItem">example</div>
</li>
<li class="item>
<div data-code="155" class="listItem">example</div>
</li>
<li class="item>
<div data-code="156" class="listItem">example</div>
</li>
</ul>
Than I got 150 times of success
in my console. But when I changed console.log
to item.className = "disabled"
. Like:
liArray.forEach(function(item) {
if (item.getAttribute("data-code").substring(0, 2) == 15) {
item.className = 'disabled';
}
});
It turns out that only half of (75) the items have class disabled
.
I have no idea what's going wrong with my code.
Hope someone can help, thank you!