JQuery:使用 .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 语句为 true 时,我总是在顶部代码段中比底部代码段中多获得一个元素(即 contextEl 在结果集中 - 这正是我想要的)。我不明白为什么底部方法调用 toBeSorted.add(contextEl) 的方式不起作用?
非常感谢任何指示或建议。
谢谢你!
There may be a simple answer to this question, but for the life of me, I don't understand why the following two methods of using $.add() give me a different result set.
var toBeSorted;
if (contextEl.hasClass("lv"))
toBeSorted = $(".lv", contextEl).add(contextEl);
else
toBeSorted = $(".lv", contextEl);
versus
var toBeSorted = $(".lv", contextEl);
if (contextEl.hasClass("lv"))
toBeSorted.add(contextEl);
When the IF statement is true, I always get one more element in the top code segment than in the bottom code segment (namely contextEl is in the result set - which is exactly what I want). I don't understand why the bottom method's way of calling toBeSorted.add(contextEl) doesn't do the trick?
Any pointers or advice is much appreciated.
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要将
.add()
之后的结果对象写回toBeSorted
,就像在第一个代码块中所做的那样。You need to write the resulting object after
.add()
back totoBeSorted
as you do in the first code block.在这种情况下尝试使用
andSelf
将堆栈上的前一组元素添加到当前集合中。Try to use
andSelf
in this case which add the previous set of elements on the stack to the current set.