2011-10-21 11 views
3

featuredにデータを設定しようとしていますが、それを#wrapperに追加しようとしています。これは私のために働いていません。何が間違っているのですか?jQuery追加する前に新しい要素内にコンテンツを埋め込む

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

答えて

2
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要素を作成し、これだけ最後のdivは、あなたの#wrapperに追加されます。ループの外側にあるjQueryオブジェクトを作成する必要があります。

+0

ハハと同じ回答です。最後の '$(特集)'呼び出しを忘れてしまった – rossipedia

2

ループ内に$(featured)コールがあるためです。あなたはそれを一度呼びたいだけです。

はこれを試してみてください:ブライアン・ロスさんへ

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

が非常に似て、単により効率的な方法でのdivを作成します。それはまっすぐではないかもしれませんが、私はそれがより効果的だと信じています。

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