JQuery:使用.add()向现有匹配集添加更多元素

时间:2012-01-26 18:17:00

标签: jquery selector add

这个问题可能有一个简单的答案,但对于我的生活,我不明白为什么以下两种使用$ .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)的方式不起作用?

非常感谢任何指示或建议。

谢谢!

2 个答案:

答案 0 :(得分:7)

您需要像{1}}一样将结果对象写回.add(),就像在第一个代码块中一样。

toBeSorted

答案 1 :(得分:1)

在这种情况下尝试使用andSelf,将堆栈上的前一组元素添加到当前集合中。

var toBeSorted = contextEl.find(".lv"); 

if (contextEl.hasClass("lv"))
    toBeSorted.andSelf();