Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery:使用.add()向现有匹配集添加更多元素_Jquery_Selector_Add - Fatal编程技术网

JQuery:使用.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

这个问题可能有一个简单的答案,但就我个人而言,我不明白为什么下面两种使用$.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语句为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,它是打字错误。谢谢你让我知道。