2011-07-19 12 views
17

mam ten kod:Jak mogę usunąć atrybut obrazu tła?

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

i widzę, że kiedy zastosować obraz tła, kod następująco:

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

robi usunąć zdjęcie i umieścić biały kolor tła. Obraz nadal obecny!

Jak mogę całkowicie usunąć ten atrybut tła?

Odpowiedz

44

Spróbuj tego:

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

Tak, działa! Dzięki :) – markzzz

+0

Należy pamiętać, że to nie będzie faktycznie _remove_ atrybut, to będzie po prostu dodać styl inline z 'background-image: none' - zobacz moją odpowiedź, jeśli chcesz faktycznie _remove_ atrybut –

+0

używając składni słownika , obie zmiany można wprowadzić jednocześnie za pomocą: '$ (" # myDiv "). css ({'background-color':'ffffff ',' background-image ':' none '});' –

3

background:0 usunie całą tła css

6

ten kod ...

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

nie będzie faktycznie usunąć Właściwość background-image. Spowoduje to, że jQuery ustawi wbudowany styl "background-image: none" na element myDiv, który może nie być tym, czego potrzebujesz.

Jeśli później zastosujesz klasę do elementu myDiv, który używa obrazu tła lub spróbujesz użyć "background: url (" ... aby ustawić obraz tła, styl wstawiany zostanie zastąpiony, a obraz tła nie będzie wyświetlany

Aby usunąć właściwość, sugerowałbym, aby po prostu ustawić wartość "obrazu tła" na zero, a następnie zniknie ona ze stylu liniowego i można nim łatwiej manipulować ...

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

Jeśli chcesz całkowicie usunąć styl atrybut można zrobić coś takiego

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

Przekonałem się, że ustawienie jej na przezroczysty tworzy jakieś dziwne konflikty, jeśli później zrobić inny kolor operacje na tym obszarze. Usunięcie atrybutu działa lepiej, jeśli próbujesz powrócić do domyślnego ustawienia określonego w twoim css.