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

Remove all elements if contain a string

本文关键字:元素 删除 包含 字符串 如果      更新时间:2023-09-26

如果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>

对我来说,它只删除了一个已售出的div标签。。

问题是,当您删除一个项时,您会更改集合的索引(即,i=1的项移动到0)。要更正此问题,请向后迭代:

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

您应该能够使用数组的筛选方法,如这个SO问题所示:javascript 中的array.select()