此问题在此处已有答案:
Cleanest way to get the next sibling in jQuery(3个答案)
2天前关闭。
我有下面的示例结构,其中有一些组具有不同的headerx
类,但在group
和groupxbottom
处具有相同的类,并且在它们之间具有未知数量的<li>
。
我得到了特定headerx
类的所有头文件:
let headers = $('.header1');
然后我需要隐藏每个组的匹配groupxbottom
。
我使用match()
匹配groupxbottom
的选择器,问题是它匹配所有groupxbottom
元素,但我只需要选择1个groupxbottom
,它是下一个最接近的兄弟。
假设我已经提取了正确的类名,并且它保存在selector
中,那么在迭代头文件时,我如何将它与下一个最接近的同级匹配呢?
headers.each(function() {
$(this).(.. use selector for next closest sibling only ..).hide();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<li class="header1 group1">Header1 Group1</li>
<li class="group1"></li>
<li class="group1"></li>
<li class="group1"></li>
<li class="group1"></li>
<li class="group1"></li>
<li class="group1bottom">Group 1 bottom</li>
<li class="header1 group2">Header1 Group2</li>
<li class="group2"></li>
<li class="group2"></li>
<li class="group2bottom">Group2 bottom</li>
<li class="header2 group1">Header2 Group1</li>
<li class="group1"></li>
<li class="group1"></li>
<li class="group1bottom">Group1 bottom</li>
2条答案
按热度按时间c0vxltue1#
使用
siblings()
https://api.jquery.com/siblings/x6yk4ghg2#
jQuery的
nextAll()
和attribute selector的一部分可以找到group元素,然后我们只获取集合中的第一个元素。注意,没有必要使用不同的类名,它们可以是相同的。