如何在jQuery中选择特定元素

如何在jQuery中选择特定元素,jquery,jquery-selectors,Jquery,Jquery Selectors,我有以下html语法 <ul> <li class="heading">link</li> <li>link</li> <li>link</li> <li>link</li> <li>link</li> <li class="heading">link</li> <li>link</li> <li>

我有以下html语法

<ul>
<li class="heading">link</li>
<li>link</li>
<li>link</li>
<li>link</li>
<li>link</li>
<li class="heading">link</li>    
<li>link</li>
<li>link</li>
<li>link</li>
<li class="heading">link</li>
</ul>
    链接
  • 链接
  • 链接
  • 链接
  • 链接
  • 链接
  • 链接
  • 链接
  • 链接
  • 链接

我想选择在我单击的普通li元素之后的第一个.heading元素。我尝试使用.closest()函数,但未能正确执行。使用
单击
处理程序中的jQuery

,请执行以下操作:

$(this).nextAll('.heading:first');
检索与选择器匹配的当前元素之后的所有同级,因此使用选择器仅针对第一个

nextAll
不应与之混淆,后者只考虑下一个元素(并且仅当它与给定的选择器匹配时才会返回它)

不起作用,因为它只检查当前元素的祖先,因为我们希望在其中检索兄弟


你可以在这里看到一把JS小提琴

内单击
处理程序执行:

$(this).nextAll('.heading:first');
检索与选择器匹配的当前元素之后的所有同级,因此使用选择器仅针对第一个

nextAll
不应与之混淆,后者只考虑下一个元素(并且仅当它与给定的选择器匹配时才会返回它)

不起作用,因为它只检查当前元素的祖先,因为我们希望在其中检索兄弟

你可以在这里看到一把JS小提琴

您可以这样做:

$('li').click(function(){
    $(this).nextAll('li.heading:first'); //This selects the one you want
});
检查此项以获取更多帮助: 您可以执行以下操作:

$('li').click(function(){
    $(this).nextAll('li.heading:first'); //This selects the one you want
});
检查此项以获取更多帮助:

使用“相邻同级”选择器,它是加号:

$('.heading+li')
这将拾取紧跟在带有
class='heading'
的元素之后的所有
li
元素

注意,这是标准CSS,因此上述选择器也将在样式表中工作(除IE6之外的所有浏览器都支持),如下所示:

.heading+li { .... }
有关此选择器工作原理的说明,请参见。

使用“相邻同级”选择器,它是加号:

$('.heading+li')
这将拾取紧跟在带有
class='heading'
的元素之后的所有
li
元素

注意,这是标准CSS,因此上述选择器也将在样式表中工作(除IE6之外的所有浏览器都支持),如下所示:

.heading+li { .... }

另请参阅,以了解此选择器的工作原理。

哦,我在做示例,而您在做答案:哦,我在做示例,而您在做答案:这不正确,'首先,标题元素位于我单击的普通li元素之后。'这不正确,“首先。标题元素位于我单击的正常li元素之后。”
next
只考虑下一个元素,而不是考虑所有元素。
nextAll
只考虑下一个元素,而不是考虑所有元素。
nextAll
谢谢教我一些新东西。我在一些css样式中看到了这一点,并想知道这是为了什么。现在我知道了!谢谢你教我新东西。我在一些css样式中看到了这一点,并想知道这是为了什么。现在我知道了!