У меня есть список div с тем же классом:
<div class="1">
<a href="#">Hello</a>
<p>Hello</p>
</div>
<div class="1">
<a href="#">Welcome</a>
<p>Hello</p>
</div>
...
Мне нужно удалить все divs, которые содержат ссылку с именем "Hello". Я только придумал это: $(".1").remove(":contains('Hello')");
Но он также удаляет divs, которые содержат текст Hello в своих тегах p.
Используйте .has()
чтобы отфильтровать элементы, имеющие привязку с href
hello. В основном он будет filter
элемент, проверяя, имеет ли source element
target element
который был передан как parameter
.
Пытаться,
$('.1').has('a[href="Hello"]').remove()
У вас также есть некоторые недопустимые markups
, вы просто пропустили closing angle brackets
на каждом ярлыке anchor
. Вот допустимая версия вашего HTML,
<div class="1">
<a href="Hello">hello</a>
<p>Hello</p>
</div>
<div id='test' class="1">
<a href="Welcome">welcome</a>
<p>Hello</p>
</div>
Основываясь на вашем комментарии в Arun Bro Post,
Пытаться,
$('.1').has('a:contains("Hello")').remove()