Как создать коллекцию элементов jQuery и добавить их в DOM?

Я перебираю список, и мне нужно создать радиокнопку 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? Конечно, я могу вставлять каждый элемент один за другим, но я хочу создать все это динамически и вставить один раз.

Спасибо за помощь!

4 голоса | спросил frequent 25 J0000006Europe/Moscow 2013, 18:47:50

1 ответ


0

удалось добавить это в следующем примере кода:

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);

Демонстрация скрипки: http://jsfiddle.net/558qq/3/

ответил tymeJV 25 J0000006Europe/Moscow 2013, 19:05:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132