JQuery:使用.add()向现有匹配集添加更多元素
这个问题可能有一个简单的答案,但就我个人而言,我不明白为什么下面两种使用$.add()的方法会给我一个不同的结果集JQuery:使用.add()向现有匹配集添加更多元素,jquery,selector,add,Jquery,Selector,Add,这个问题可能有一个简单的答案,但就我个人而言,我不明白为什么下面两种使用$.add()的方法会给我一个不同的结果集 var toBeSorted; if (contextEl.hasClass("lv")) toBeSorted = $(".lv", contextEl).add(contextEl); else toBeSorted = $(".lv", contextEl); 对 var toBeSorted = $(".lv", contextEl); if (co
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语句为true时,我总是在顶部代码段中比在底部代码段中多得到一个元素(即contextEl在结果集中-这正是我想要的)。我不明白为什么bottom方法调用toBeSorted.add(contextEl)的方式不起作用
非常感谢您的指点或建议
谢谢大家! 您需要在
之后写入结果对象。添加()
返回到toBeSorted
,就像您在第一个代码块中所做的那样
toBeSorted = toBeSorted.add(contextEl);
在这种情况下,尝试使用
和self
,将堆栈上的前一组元素添加到当前集合中
var toBeSorted = contextEl.find(".lv");
if (contextEl.hasClass("lv"))
toBeSorted.andSelf();
哦,伙计!!!当然非常感谢。我知道这很简单。我忘了它实际上并没有收集/修改原始变量。再次感谢。谢谢,这也是一个更好的解决方案(我想你的意思是$.andSelf()。我会用你的方式,因为它看起来更优雅,但正如坦杜指出的,它需要如下:
toBeSorted=toBeSorted.andSelf();
@jojojoedad-是的,我的意思是andSelf,它是打字错误。谢谢你让我知道。