Как найти все элементы с определенным контентом и удалить их со страницы JS/jQuery
Как можно через консоль браузера, найти все элементы со значением 24 и удалить их со страницы.
<div id="shows" class="shows">
<div class="show">
<span class="label label-dark ec">24</span>
<a href="/show/xxx">
</div>
<div class="show">
<span class="label label-dark ec">24</span>
<a href="/show/xxx">
</div>
<div class="show">
<span class="label label-dark ec">21</span>
<a href="/show/xxx">
</div>
<div class="show">
<span class="label label-dark ec">13</span>
<a href="/show/xxx">
</div>
</div>
То есть удалить 2 блока
<div class="show">
<span class="label label-dark ec">24</span>
<a href="/show/xxx">
</div>
<div class="show">
<span class="label label-dark ec">24</span>
<a href="/show/xxx">
</div>
Ответы (1 шт):
Автор решения: Vasily
→ Ссылка
Для этого можно воспользоваться методом each():
$(".show").each(function() {
if ($(this).find("span").html() === "24") {
$(this).remove()
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="shows" class="shows">
<div class="show">
<span class="label label-dark ec">24</span>
<a href="/show/xxx">
</div>
<div class="show">
<span class="label label-dark ec">24</span>
<a href="/show/xxx">
</div>
<div class="show">
<span class="label label-dark ec">21</span>
<a href="/show/xxx">
</div>
<div class="show">
<span class="label label-dark ec">13</span>
<a href="/show/xxx">
</div>
</div>
Имейте ввиду что проверка содержимого каждой ноды крайне ресурсозатратное мероприятие, поэтому такой вариант стоит использовать только в крайних случаях.
Тоже самое на JS:
document.querySelectorAll(".show").forEach(item => {
if (item.querySelector("span").innerHTML === "24") {
item.remove()
}
})
здесь метод для перебора называется forEach().