我有以下jQuery:
$(this).siblings().removeClass('active');
$(this).addClass('active');
是否可以将它组合成一行?你不能这样做:
$(this).siblings().removeClass('active').addClass('active');
因为所选的DOM节点现在是所有兄弟节点而不是原始节点,因为您从原始选择中转移(sp?)。
我想知道是否有一些选择器再次选择您的原始选择,您可以链接到第一行,这样它就在一行中。
答案 0 :(得分:2)
您可以使用end
$(this).siblings().removeClass('active').end().addClass('active');
答案 1 :(得分:2)
我相信你要找的是the .end()
function。引用该文档:
大多数jQuery的DOM遍历方法都在jQuery对象实例上运行,并生成一个新的,与不同的DOM元素集匹配。当发生这种情况时,就好像将新的元素集推送到在对象内维护的堆栈上。每个连续的过滤方法将新元素集推送到堆栈上。如果我们需要一个较旧的元素集,我们可以使用end()从堆栈中弹回集合。