2011-04-09 9 views
0

私はちょうど特定のクラスの各要素について特定の属性を見つけ、次に要素を置き換える必要があるため、いくつかのコードを記述しようとしています。私が持っているコードは、今のようになります。.each.replaceWith()jQueryのヘルプ

<div class="a-photo" alt="*/THE IMG SRC*/"></div> 
<div class="a-photo" alt="*/THE IMG SRC*/"></div> 
<div class="a-photo" alt="*/THE IMG SRC*/"></div> 
<div class="a-photo" alt="*/THE IMG SRC*/"></div> 

$('.a-photo').each().replaceWith(function(){ 
var hash = $(this).attr('alt') 
"<div class='a-photo' style='background:url("+ hash +") center no-repeat;></div>" 
}); 

私は、これは適切ではないことを知っている、そしてそのは動作していないが、私はこれを書く方法を考えることはできません、任意の助けをいただければ幸いです!

EDIT

私は元素の量が予め定められていないことを言及する必要があります。

+0

存在しない変数 'alt'を補間しています - あなたは' hash'を意味するのではないでしょうか? – Cameron

+0

おっと、ええ、私はそれを修正することができます、それは問題ではない、jsutの誤植。 – mcbeav

答えて

2

私はあなたが次たいと思う:

$('.a-photo').each()(function(){ 
    $(this).css({'background':'url('+$(this).attr('alt') + ') center no-repeat'}); 
}); 
+1

"url"には括弧が必要です。 – lukiffer

+0

haha​​hええ、私はちょうど答えを得る前に、私はちょうどそれをした、ありがとう助けを束に! – mcbeav

+0

はい、私は忘れてしまった – gor

1

をあなたは誤りであり、また余分replaceWith becaueすでに同じことをeach().replaceWithを使用しています。試してみてください:

$('.a-photo').replaceWith(function(){ 
    var alt = $(this).attr('alt'); 
    return "<div class='a-photo' style='background:url("+ alt +") center no-repeat;></div>"; 
});