2011-07-19 12 views
17

私はこのコードを持っている:背景イメージの属性を削除するにはどうすればよいですか?

if (pansel.val() == "1") 
    $(#myDiv).css('background-image', 'url(/private_images/guida_check_category.jpg)'); 
else 
    $(#myDiv).css({ 'background-color': '#ffffff' }); 

をし、私は背景画像、フォローコードを適用すると、その次を参照してください。

$(#myDiv).css({ 'background-color': '#ffffff' }); 

doesntのは、画像を削除して、白の背景色を置きます。まだ画像があります!

どうすればその背景画像属性を完全に削除できますか?

答えて

44

これを試してみてください:

if (pansel.val() == "1") 
    $("#myDiv").css('background-image', 'url(/private_images/guida_check_category.jpg)'); 
else { 
    $("#myDiv").css({ 'background-color': '#ffffff' }); 
    $("#myDiv").css('background-image', 'none'); 
} 
+0

うんうん!ありがとう:) – markzzz

+0

これは実際に属性を_remove_しないことに留意してください。単に 'background-image:none'のインラインスタイルを追加します。実際に属性を_remove_したい場合は私の答えを見てください。 –

+0

辞書構文'$("#myDiv ").css({'背景色': '#ffffff'、 '背景画像': 'なし'});' –

3

background:0は、全体の背景CSS

6

このコードを削除します...

$myDiv = $('#myDiv'); 
$myDiv.css('background-image', 'none'); 

が実際に背景画像のプロパティは削除されません。 jQueryはmyDiv要素に 'background-image:none'のインラインスタイルを設定します。これはあなたが望むものではないかもしれません。

後で背景画像を使用するmyDiv要素にクラスを適用するか、 'background:url(' ...を使用して背景画像を設定しようとすると、インラインスタイルが上書きされ、背景画像は表示されません。

プロパティを削除するには、「background-image」の値を何も設定しないと、インラインスタイルからすべて消えてしまい、もっと簡単に操作できることをお勧めします。

if (pansel.val() === "1") { 
    $myDiv.css('background-image', 'url(/private_images/guida_check_category.jpg)'); 
} else { 
    $myDiv.css('background-color', '#ffffff').css('background-image', ''); 
    //the value will be set to white with the image 'empty', so it will disappear from inline styles 
} 
0

あなたは完全にあなたが後で他の色を行う場合は、私は透明にそれを設定すると、いくつかの奇妙な競合を作成することを見出した

var oDiv = document.getElementById("myDiv"); 
oDiv.style.removeProperty("background-color"); 

このような何かを行うことができます属性のスタイルを削除する場合その領域に対する操作。 cssで指定されたデフォルト設定に戻す場合は、属性を削除する方が効果的です。

関連する問題