2

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

这是我的代码:

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

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

4

3 回答 3

3

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

var foo = [];
for(var i=0; i < 10; i++) {
  var bar = $('<div>');
  $('body').append(bar);
  foo.push(bar[0]);
}
foo = $(foo);
于 2012-06-27T09:53:40.273 回答
2

这个问题的原因是.add()方法没有改变原来的jQuery集合对象,而是返回一个新的。

您可以简单地将代码更改为:DEMO。

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

console.log(foo);
于 2012-06-27T10:26:37.033 回答
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");

演示:http: //jsfiddle.net/u3efP/

于 2012-06-27T10:33:18.450 回答