如果它的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 ..
是如何'Sold'文本到達那裏?似乎它可能是動態的,無論是在客戶端還是服務器端。如果是這樣,那麼向元素添加'sold'類會更簡潔一些,這樣就不必''.indexOf()'.innerHTML'。 –
如果要測試文本,則innerHTML是使用的錯誤屬性。最好使用* textContent *或* innerText *。另外,IE8及更低版本不支持* getElementsByClassName *。 – RobG