Javascript jquery对象创建的新方法

Javascript jquery对象创建的新方法,javascript,jquery,Javascript,Jquery,我的代码有这一行 var variableName = $("<div class='class-name'></div>"); console.log(variableName); -> Object[div.class-name] 实际代码为: var overlapCollector; $.each(region, function(i, r){ var overlapper = $("<div class='markup-

我的代码有这一行

var variableName = $("<div class='class-name'></div>");
console.log(variableName); -> Object[div.class-name]
实际代码为:

    var overlapCollector;
    $.each(region, function(i, r){
      var overlapper = $("<div class='markup-overlapper'></div>").appendTo( markupCanvas );
      overlapper.css({
          "position": "absolute",
          "left": r.x1,
          "top": r.y1,
          "width": r.x2-r.x1,
          "height": r.y2-r.y1
      }).toggleClass("exclude", ex);
      overlapCollector = overlapper.add(overlapper);
      console.log(overlapCollector);
  });
请帮忙

谢谢

您可以使用创建一个新的jQuery对象,并将元素添加到匹配的元素集中。它将匹配集作为新的jQuery对象返回

因此,您的代码可能如下所示:

变量变量名=$; variableName=variableName.add$; console.logvariableName;//->对象[div.class-name,span.new类]
您必须使用.add,但还必须记住,此函数不会附加到当前对象,而是返回包含所需内容的新对象

通过使用以下各项确保适当的行为:

var variableName = $("<div class='class-name'></div>");
variableName = variableName.add($("<div class='another-div'></div>"));
console.log(variableName); -> Object[div.class-name, div.another-div]
编辑:因为下面的评论询问了循环:

var variableName = $("<div class='class-name'></div>");
for(...){
    variableName = variableName.add($("<div class='another-div'></div>"));
}
console.log(variableName); -> Object[div.class-name, div.another-div, ..., div.another-div]
就这么做吧

$

还是这个


$.add

不确定创建“移动更多”是什么意思?该对象中的值

如果您引用的是属性,则可以执行以下操作:

var x = $('<div/>', {"class":"class-name", "id":"someId"});
如果要将另一个对象添加到当前集合,则需要使用。如上所述添加:

var x = $('<div/>');
x.add('div');
在这里,你将在你的收藏中得到2个div。此外,jQuery对象集合将按照元素在DOM中的显示顺序返回,而不是按照您添加到集合中的顺序返回


HTH

您可以使用。已尝试,但失败:您需要首先将其放入变量中并赋值。检查我的答案..add返回一个新的jQuery对象。jQuery本身不支持直接添加到当前jQuery对象的方法。由于各种方法在jQuery对象上的工作方式,它们通常不会在创建后进行修改。筛选或添加的方法等。。。通常返回新的jQuery对象并应用修改。谢谢@Corvus,我认为这在循环中不起作用,对吗?是的,只要variableName在循环范围之外,您就只需在每次迭代中执行追加和替换操作。代码在上面进行了编辑,我希望变量ovarlapCollector中的所有div都作为对象[div.markup-overlapper,div.markup-overlapper,…]这已经超出了这个问题的范围,并且与整个代码结构越来越相关。对于这一点,我建议您多考虑一下您想要实现的目标,以及使用.add是否能够实现这一目标。这听起来更像是你只是想迭代某个东西并将其附加到markupCanvas中,而不是仅仅为了使用AddGaid而创建另一个容器——你总是可以勾选为正确答案和/或向上投票:不确定是幼稚还是花太长时间看reddit
var x = $('<div/>');
x.add('div');