如何删除背景图像属性?

我有这个代码:

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' }); 

不会删除图像并将白色背景颜色。 图像仍然存在!

如何完全删除背景图像属性?

试试这个:

 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'); } 

这段代码……

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

实际上不会删除 background-image属性。 它将使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 } 

background:0将删除整个背景css

$('*').css('background', 'transparent')

请参阅: 使用jQuery删除所有元素的背景颜色/图像

如果要完全删除样式属性,可以执行以下操作

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

我发现如果稍后在该区域进行其他颜色操作,将其设置为透明会产​​生一些奇怪的冲突。 如果您尝试恢复到css中指定的某个默认设置,则删除该属性会更好。