jQuery:如何创建一个新元素并将其添加到集合中?

时间:2012-06-27 09:51:45

标签: jquery dom

我想用jQuery创建一些DOM节点,将它们附加到html,同时保持它们被选中,所以我不需要再次选择它们。

这是我的代码:

var foo=$('');
for(var i=0;i<10;i++){
    var bar=$('<div>');
    $('body').append(bar);
    foo.add(bar);
}

显然foo最终会保持空虚,所以它不会起作用。如果不选择最后的所有栏,我该如何处理?

3 个答案:

答案 0 :(得分:3)

您可以使用数组,而不是jQuery对象:

var foo = [];
for(var i=0; i < 10; i++) {
  var bar = $('<div>');
  $('body').append(bar);
  foo.push(bar[0]);
}
foo = $(foo);

答案 1 :(得分:2)

此问题的原因是.add()方法不会更改原始jQuery集合对象,但会返回一个新对象。

您只需将代码更改为: The DEMO.

var foo=$('');
for(var i=0;i<10;i++){
    var bar=$('<div>');
    $('body').append(bar);
    foo = foo.add(bar);
}

console.log(foo);

答案 2 :(得分:1)

要向jQuery集合添加新元素,请使用foo = foo.add(bar)

以下是您的代码的更新版本:

var foo = $();
for (var i = 0; i < 10; i++) {
    var bar = $("<div />").appendTo("body");
    foo = foo.add(bar);
}
foo.css("color", "red");

DEMO: http://jsfiddle.net/u3efP/