检测ul列表中的类,如果没有找到删除li:first-child

时间:2013-11-24 17:24:53

标签: javascript jquery dom

我有这个结构:

<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元素。

2 个答案:

答案 0 :(得分:1)

$('#my-list:has(.class-1) li:first').remove()

这当然需要一个ID:

<ul id="my-list">

FIDDLE

根据你的问题,你想出于某种奇怪的原因做相反的事情,那就是:

$('#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()