Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建jQuery元素的集合并将它们附加到DOM中?_Jquery_Arrays_Jquery Mobile_Append_Documentfragment - Fatal编程技术网

如何创建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);