我想用 jQuery 创建一些 DOM 节点,将它们附加到 html 中,同时保持它们被选中,所以我不需要再次选择它们。
这是我的代码:
var foo=$('');
for(var i=0;i<10;i++){
var bar=$('<div>');
$('body').append(bar);
foo.add(bar);
}
显然 foo 最终会保持为空,所以它不会起作用。如果最后没有选择所有的酒吧,我应该如何处理它?
您可以使用数组,而不是 jQuery 对象:
var foo = [];
for(var i=0; i < 10; i++) {
var bar = $('<div>');
$('body').append(bar);
foo.push(bar[0]);
}
foo = $(foo);
这个问题的原因是.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);
要将新元素添加到 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/