查找具有特定子JQUERY的下一个同级

查找具有特定子JQUERY的下一个同级,jquery,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

我有这个格式的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的索引,其中包含“锚定子对象”和类“header”。请告诉我找到该索引的最佳方法。

用于检索以下同级,使用选择器进行筛选,然后如果您只需要第一个匹配项

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

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

用于检索以下同级,使用选择器进行过滤,然后如果您只需要第一个匹配项

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


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

您可以使用
nextAll
的组合来获取同级,并使用
filter
来查找包含所需
a
的过滤器。试试这个:

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

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

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

如果能提到为什么会投反对票,那就太好了。如果能提到为什么会投反对票,那就太好了。。