我正在尝试删除任何元素,如果它的innerHTML包含某个字符串。
我有这段代码:
elemItem = document.getElementsByClassName("item");
elemItemPrice = document.getElementsByClassName("price");
for (i = 0; i < elemItem.length; i++) {
if (elemItemPrice[i].innerHTML.trim().indexOf("Sold") != -1){
elemItem[i].parentNode.removeChild(elemItem[i])
}
}
这是HTML:
<div class="item">
<span class="price">Sold</span>
</div>
<div class="item">
<span class="price">Sold</span>
</div>
<div class="item">
<span class="price">$4.99</span>
</div>
对我来说,它只删除了1个已售出的div标签..
答案 0 :(得分:4)
问题是,当你删除一个项目时,你改变了集合的索引(即,i = 1处的项目移动到0)。要纠正这个问题,请向后迭代:
for (i = elemItem.length-1; i >= 0 ; i--) {
答案 1 :(得分:0)
您应该能够使用数组的过滤方法,如此SO问题所示:array.select() in javascript