jquery对象创建的新方法

时间:2016-03-11 19:16:14

标签: javascript jquery

我的代码有这一行。

var variableName = $("<div class='class-name'></div>");
console.log(variableName); -> Object[div.class-name]

我想知道这在Jquery中是指什么,以及我们如何在该对象中添加移动值,如

Object[div.class-name, 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);
  });

请帮忙

由于

4 个答案:

答案 0 :(得分:2)

您必须使用.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]

答案 1 :(得分:0)

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

所以你的代码可能如下:

var variableName = $("<div class='class-name'></div>");
variableName = variableName.add($("<span class='new-class'></span>"));
console.log(variableName); // -> Object[div.class-name, span.new-class]
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 2 :(得分:0)

只需这样做

$("<div class='class-name'></div><div class='class-name'></div>")

或者

$("<div class='class-name'></div>").add("<div class='class-name'></div>")

答案 3 :(得分:0)

不确定你的意思&#34;在该对象中创建移动(更多?)值&#34;。

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

var x = $('<div/>', {"class":"class-name", "id":"someId"});

如果您想要在当前集合中添加其他对象,则需要使用.add()(如上所述):

var x = $('<div/>');
x.add('div');

在这里,你最终会在你的&#34;集合&#34;中得到2个div。此外,jQuery对象集合将按照元素在DOM中出现的顺序返回 - 而不是按照您可能添加到集合中的顺序返回....

HTH