如果包含字符串,则删除所有元素

时间:2013-07-14 22:02:01

标签: javascript html

我正在尝试删除任何元素,如果它的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标签..

2 个答案:

答案 0 :(得分:4)

问题是,当你删除一个项目时,你改变了集合的索引(即,i = 1处的项目移动到0)。要纠正这个问题,请向后迭代:

for (i = elemItem.length-1; i >= 0 ; i--) {

答案 1 :(得分:0)

您应该能够使用数组的过滤方法,如此SO问题所示:array.select() in javascript