Я пытаюсь удалить любой элемент, если он является 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 ..
Как это 'Sold' текст попасть туда? Похоже, что это, вероятно, динамично, как на клиенте, так и на сервере. Если это так, было бы немного чище добавить класс 'sold' к элементу, чтобы вам не приходилось' .indexOf() '' .innerHTML'. –
Если вы хотите протестировать текст, то innerHTML является неправильным свойством. Лучше использовать * textContent * или * innerText *. Кроме того, * getElementsByClassName * не поддерживается IE 8 и ниже. – RobG