如何创建jQuery元素的集合并将它们附加到DOM中?
我在一个列表上循环,需要为每个列表元素创建一个。所有单选按钮都应该放在如何创建jQuery元素的集合并将它们附加到DOM中?,jquery,arrays,jquery-mobile,append,documentfragment,Jquery,Arrays,Jquery Mobile,Append,Documentfragment,我在一个列表上循环,需要为每个列表元素创建一个。所有单选按钮都应该放在div class=“radio controls”中,完成后会附加到DOM中 以下是我正在尝试的: var label = $("<label/>").attr("data-" + $.mobile.ns + "iconpos", "notext"); barrel = []; for (var i = 0; i < myListitems.length; i += 1) {
div class=“radio controls”
中,完成后会附加到DOM中
以下是我正在尝试的:
var label = $("<label/>").attr("data-" + $.mobile.ns + "iconpos", "notext");
barrel = [];
for (var i = 0; i < myListitems.length; i += 1) {
var item = myListitems[i];
barrel.push(
$("<input type='radio' name='radio-" + this.uuid + "' value='radio-" + this.uuid + "-" + i +"' />" )
.wrap(label)
.checkboxradio()
);
}
}
内部jQuery
if ( ( context.ownerDocument || context ) !== document ) {
这据说是由于数组不包含从文档中选择的元素(我的元素仍然没有添加到DOM中),而document.createFragement
不起作用,因为我认为我无法将jQuery对象添加到片段中。这样做:
var fragment = document.createDocumentFragment();
// in my loop
bullet = $("<input type='radio' name='radio-" + this.uuid + "' value='radio-" + this.uuid + "-" + i +"' />" )
.wrap(label)
.checkboxradio()
fragment.appendChild( bullet );
// after loop, add to document
fragment[o.bulletsPos === "top" ? prependTo : appendTo](el);
问题:
有没有办法生成jQuery项的集合并将其附加到DOM中?当然,我可以一个接一个地插入每个项目,但我想创建整个项目并插入一次
谢谢你的帮助 能够使用以下示例代码将其追加:
var collection = [];
var elem;
for (var i = 0; i < 10; i+=1) {
elem = $("<span />").attr("class","foo-"+i).text("hello");
collection.push(elem);
}
console.log(collection);
// the "context" error
//$(collection).appendTo(document.body);
$(document.body).append(collection);
var集合=[];
var-elem;
对于(变量i=0;i<10;i+=1){
elem=$(“”)attr(“class”,“foo-”+i).text(“hello”);
收集、推送(elem);
}
控制台日志(收集);
//“上下文”错误
//$(集合).appendTo(document.body);
$(document.body).append(collection);
小提琴演示:你能做一把小提琴吗?我知道您可以使用
.map()
函数创建一个元素数组,然后将整个数组附加到一个元素。我做了一个快速的小提琴,它有帮助吗(我可能错过了这一个标记)?试图更新你的小提琴。1sec@tymeJV:但我刚刚看到,如果不围绕集合包装$()
,它可能会起作用。1将最后一个附加更改为$(document.body)。附加(集合)
::是的。这很有效。但是我失去了jQuery手机的风格。。。无论如何请回答一下,这样我可以查一下。谢谢
Value does not implement interface Node.
var collection = [];
var elem;
for (var i = 0; i < 10; i+=1) {
elem = $("<span />").attr("class","foo-"+i).text("hello");
collection.push(elem);
}
console.log(collection);
// the "context" error
//$(collection).appendTo(document.body);
$(document.body).append(collection);