gpt4 book ai didi

jquery - 如何找到在 dom 树中向下移动的下一个相似的 sibling

转载 作者:行者123 更新时间:2023-12-01 06:32:56 25 4
gpt4 key购买 nike

这里我需要的是当定位在其中一个 dt 元素上时,我想跳转到下一个 dt 元素。我怎样才能实现这个目标?

<dl class="accordion">
<dt>Select Category</dt>
<dd></dd>

<dt>select product</dt>
<dd></dd>
</dl>
(function($) {
var allPanels = $('.accordion > dd').hide();
$('.accordion > dd:first-of-type').show();
$('.accordion > dt:first-of-type').addClass('accordion-active');

jQuery('.accordion > dt').on('click', function() {
$this = $(this);
$target = $this.next();
if (!$this.hasClass('accordion-active')) {
$this.parent().children('dd').slideUp();
jQuery('.accordion > dt').removeClass('accordion-active');
$this.addClass('accordion-active');
$target.addClass('active').slideDown();
}
return false;
});
})(jQuery);

最佳答案

在 jquery 中看似显而易见的选项:.next("dt") 并非如此,因为 .next() 始终只返回下一个同级,应用过滤器 .next(filter) 仍然只返回下一个同级,但前提是它与过滤器匹配

jQuery 提供了两种替代方案:.nextUntil().nextAll()

这些可以用作:

nextdt = thisdt.nextUntil("dt").next();
nextdt = thisdt.nextAll("dt").first();

其中 nextUntil 获取下一个兄弟节点,直到匹配(因此您需要另一个 next()),而 nextAll 获取所有匹配项(因此您需要 first())。

在问题的代码中,这提供了以下更新:

jQuery('.accordion > dt').on('click', function() {
$this = $(this);
$target = $this.nextAll("dt").first();

fiddle 示例:https://jsfiddle.net/0wk1mkeq/

关于jquery - 如何找到在 dom 树中向下移动的下一个相似的 sibling ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38562192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com