2011-07-19 19 views
17

tengo este código:¿Cómo puedo eliminar un atributo de imagen de fondo?

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

y veo que, cuando aplico la imagen de fondo, el código de seguimiento:

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

doesnt eliminar la imagen y poner el color de fondo blanco. La imagen sigue presente!

¿Cómo puedo eliminar por completo ese atributo de imagen de fondo?

Respuesta

44

Prueba esto:

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

¡Sí funciona! Gracias :) – markzzz

+0

Ten en cuenta que esto no quitará en realidad el atributo, simplemente agregará un estilo en línea de 'background-image: none' - verás mi respuesta si deseas _remove_ el atributo –

+0

usando la sintaxis del diccionario , ambos cambios se pueden hacer a la vez a través de: '$ (" # myDiv "). css ({'color de fondo': '#ffffff', 'background-image': 'ninguno'});' –

3

background:0 eliminará todo el css fondo

6

Este código ...

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

en realidad no eliminar la propiedad background-imagen. Hará que jQuery establezca un estilo en línea de 'background-image: none' en el elemento myDiv, que puede no ser lo que usted desea.

Si más tarde aplica una clase al elemento myDiv que utiliza una imagen de fondo o intenta utilizar 'background: url (' ... para establecer una imagen de fondo, el estilo en línea se anulará y la imagen de fondo no se mostrará .

para quitar la propiedad, sugeriría que la que acaba de establecer el valor 'imagen de fondo' para nada, entonces desaparecerá del estilo en línea todos juntos y se puede manipular con mayor facilidad ...

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

Si desea eliminar por completo el estilo atributo que puede hacer algo como esto

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

he encontrado que ajustarlo a transparente crea algunos conflictos impares, si más tarde lo hace otro color operaciones en esa área. La eliminación del atributo funciona mejor si está intentando volver a la configuración predeterminada especificada en su CSS.

Cuestiones relacionadas