jQuery Заполните содержимое внутри нового элемента, прежде чем добавлять его - PullRequest
3 голосов
/ 21 октября 2011

Я пытаюсь заполнить featured данными и добавить их в #wrapper.Это не работает для меня.Что я делаю не так?

var featured = '<div id="featured"></div>';
$('#imageTable tbody tr td img').each(function(){
    $(featured).append($(this).attr('src'));
});
$(featured).appendTo('#wrapper');

Ответы [ 3 ]

2 голосов
/ 21 октября 2011

Это потому, что у вас есть вызов $(featured) внутри цикла.Вы хотите позвонить только один раз.

Попробуйте:

var $featured = $('<div id="featured"></div>');
$('#imageTable tbody tr td img').each(function(){
    $featured.append($(this).attr('src'));
});
$featured.appendTo('#wrapper');
2 голосов
/ 21 октября 2011
var $featured = $('<div id="featured"></div>');
$('#imageTable tbody tr td img').each(function(){
    $featured.append($(this).attr('src')).append('<br />');
});
$featured.appendTo('#wrapper');

Объяснение:

Когда вы делаете это внутри цикла $(featured), он создает НОВЫЙ div для каждого выбранного элемента, поэтому к вашему #wrapper добавляется только последний div.Вам необходимо создать объект jQuery вне цикла each.

1 голос
/ 12 ноября 2011

Очень похоже на Брайана Росса, просто создаю div более эффективным способом. Это может быть не так просто, но я считаю, что это более производительно.

var $f = $('<div>',{id:'featured'});
$('img,#imageTable > td').each(function(i){
    $f.append($(this).attr('src');
})
$f.appendTo('#wrapper');
...