如何在jQuery中选择特定元素
我有以下html语法如何在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>
<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样式中看到了这一点,并想知道这是为了什么。现在我知道了!