我有这个结构:
<ul id="#my-list">
<li><a class="class-1" href="#">Link</a></li>
<li><a class="class-2" href="#">Link</a></li>
<li><a class="class-3" href="#">Link</a></li>
</ul>
我希望jquery检查#my-list 中是否存在 .class-1 ,否则应删除 .li (只是第一个。)
基本上,删除第一个链接时,也应删除第一个li元素。
答案 0 :(得分:1)
$('#my-list:has(.class-1) li:first').remove()
这当然需要一个ID:
<ul id="my-list">
根据你的问题,你想出于某种奇怪的原因做相反的事情,那就是:
$('#my-list:not(:has(.class-1)) li:first').remove()
但问题是,你如何删除锚点,为什么不删除列表项呢?
答案 1 :(得分:1)
基本上,删除第一个链接时,也应删除第一个li元素。
听起来像你想要的那样:
$('#my-list > li').first().filter(function() {
return $(this).find('a').length === 0;
}).remove();
如果您要将其应用于所有li
元素,而不仅仅是第一个元素,只需省略.first()
。