0

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タグの1つだけを削除しています..

4

2 に答える 2

4

問題は、アイテムを削除すると、コレクションのインデックスが変更されることです (つまり、i=1 のアイテムが 0 に移動します)。これを修正するには、逆方向に繰り返します。

for (i = elemItem.length-1; i >= 0 ; i--) {
于 2013-07-14T22:03:42.980 に答える
0

この SO question: array.select() in javascriptに見られるように、配列のフィルター メソッドを使用できるはずです。

于 2013-07-14T22:47:58.627 に答える