我正在遍历一个列表,需要为每个列表元素创建一个jQuery Mobile 单选按钮。所有单选按钮都应该放在一个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 数组,我需要附加它。
但是makeArray失败并返回
context is undefined
在 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);
返回此错误:
Value does not implement interface Node.
问题:有没有办法生成 jQuery 项目的集合并将其附加到 DOM?当然,我可以一个接一个地插入每个项目,但我想创建整个动态并插入一次。
感谢帮助!