这个问题可能有一个简单的答案,但对于我的生活,我不明白为什么以下两种使用$ .add()的方法给我一个不同的结果集。
var toBeSorted;
if (contextEl.hasClass("lv"))
toBeSorted = $(".lv", contextEl).add(contextEl);
else
toBeSorted = $(".lv", contextEl);
与
var toBeSorted = $(".lv", contextEl);
if (contextEl.hasClass("lv"))
toBeSorted.add(contextEl);
当IF语句为真时,我总是在顶部代码段中获得一个元素而不是底部代码段(即 contextEl 在结果集中 - 这正是我想要的) 。我不明白为什么底层方法调用 toBeSorted.add(contextEl)的方式不起作用?
非常感谢任何指示或建议。
谢谢!
答案 0 :(得分:7)
您需要像{1}}一样将结果对象写回.add()
,就像在第一个代码块中一样。
toBeSorted
答案 1 :(得分:1)
在这种情况下尝试使用andSelf
,将堆栈上的前一组元素添加到当前集合中。
var toBeSorted = contextEl.find(".lv");
if (contextEl.hasClass("lv"))
toBeSorted.andSelf();