jquery - группирует или объединяет объекты jquery, созданные в цикле, поэтому использовать appendTo только один раз - PullRequest
5 голосов
/ 10 марта 2012

У меня есть цикл for для генерации строки div с, мой код

for(j=0; j<7; j++) {
   $('<div/>', {
     id: 'unique',
     html: 'whatever'
}).appendTo('#container');

Этот код, похоже, ищет #container для каждой итерации и добавляет к нему новый div.

Как написать код, чтобы я мог сначала создать все элементы div, а затем добавить их в контейнер сразу?К сожалению, я попытался выполнить поиск по ключевым словам, таким как объекты сцепления / группировки / добавления jquery, и, похоже, не дал правильных результатов поиска.

TIA

Ответы [ 2 ]

7 голосов
/ 10 марта 2012

Решение Ксандера должно работать просто отлично. Мне лично не нравится работать с «длинными» строками HTML в js. Вот решение, которое больше похоже на ваш код.

var elements = [];
for(j=0; j<7; j++) {
    var currentElement = $('<div>', { id: i, text: 'div' });
    elements.push(currentElement[0]);
}
$('#container').append(elements);
4 голосов
/ 10 марта 2012

Это может помочь

var htm = '';
for(j=0; j<7; j++) {
     htm+= '<div id="unique_'+i+'">whatever</div>';
}

$('#container').html(htm); // Or append instead of html 
...