2012-01-11 18 views
0

divの背景画像を変更しようとしています。JQueryを使用して背景画像を変更する

私は変数に画像を保存しましたが、変数であり順方向のファイルパスではないので、これを渡す方法がわかりません。

var bgImage = $('#box').find('img'); 

$('#box2').css('background-image', url(bgImage)); 

どこが間違っていますか?

答えて

3

bgImageは、パスではありません、それはimg要素への参照です。 src属性の値にアクセスする必要があります。 attr('src')。あなたはそれに画像を渡し、url()という関数を呼び出しているかのように、実際にあなたが文字列url(...)を渡したいながら

また、あなたは現在、あなたのコードを使用しています。あなたのような、いくつかの文字列連結を行う必要があるでしょう:

$('#box2').css('background-image', 'url(' + bgImage.attr('src') + ')'); 
+0

+1ありがとう、私のためにきれいにそれをクリアしました。よく知られている! –

3

あなたの構文が間違っています。 、とにかく

$('#box2').css('background-image', "url(" + bgImage.attr("src") + ")"); 

あなたはより良いあなたが何かを持って確認します:代わりにこれを持って

if (bgImage.length == 1) { 
    $('#box2').css('background-image', "url(" + bgImage.attr("src") + ")"); 
} 
+0

ような文字列でそれを渡す必要がありますこの例では? –

+0

@David - 私は間違って '.prop()'を '.attr()'に置き換えたと誤っていましたが、深い鋸を読み取った後はプロパティ値(例えば 'tagName')私の答えを編集しました。 –

1
$('#box2').css('background-image', 'url(' + bgImage.attr('src') + ')'); 
-1

使用Firebugはあなたの要素を検査します。新しい背景画像がどのように設定されているかを確認します。

そして、あなたは、いくつかの引用符に

$( '#のBOX2')を欠けているCSS( '背景画像'、 'URL(\' '+ bgImage +' \ ')')。

0

CSSの2番目のパラメータはテキストaswelなければならない:

$('#box2').css('background-image', 'url(' + bgImage.attr('src') + ')'); 
0
$('#box2').css('background-image', 'url('+bgImage.attr("src")+') 0px 0px'); 

あなたは、なぜあなたは `attr``オーバーprop`を好むされる

関連する問題