找一个特定的孩子JQUERY的下一个兄弟

时间:2014-11-17 13:34:32

标签: jquery

我有这种格式的UL

<UL>
<LI>ABC</LI>
<LI>DEF</LI>
<LI>GHI</LI>
<LI>JKL</LI>
<LI><a class='header'>MNO</a></LI>
<LI>PQR</LI>
<LI>DEF</LI>
<LI>GHI</LI>
<LI>JKL</LI>
<LI><a class='header'>AHP</a></LI>
<LI>GHI</LI>
<LI>JKL</LI>
</UL>

我有一个包含第二个 li 实例的变量。

var l=$('ul li:eq(1)');

但我需要找到下一个li的索引,其中“anchor child”带有“header”类。我是否知道找到该指数的最佳方法。

2 个答案:

答案 0 :(得分:3)

使用nextAll()检索以下兄弟,使用:has选择器进行过滤,然后使用first(),如果您只想要第一次匹配。

l.nextAll(':has(.header)').first();

JSFiddle Demo

当然,如果需要,您可以在过滤器中更加具体 - li:has(a.header)

答案 1 :(得分:2)

您可以使用nextAll的组合来获取兄弟姐妹,filter可以找到包含所需a的内容。试试这个:

var $li = $('ul li:eq(1)');
$li.nextAll('li').filter(function() {
    return $(this).find('.header').length > 0; 
}).first().addClass('foo');

Example fiddle