Javascript - 删除背景元素 - 没有jQuery

4wk*_*wk_ 4 javascript dom

所以我有这个DOM代码:

<div id="foobar">
    H<br />
    e<br />
    l<br />
    l<br />
    o
</div>
<script>
    var foobarElement = document.getElementById('foobar');
    foobarElement.style.backgroundImage = '';
    foobarElement.style.background = '';
    foobarElement.style.backgroundUrl = '';
    foobarElement.style.backgroundColor = 'green';
</script>
Run Code Online (Sandbox Code Playgroud)

在div上使用CSS属性:

#foobar {
    background: rgba(0, 0, 0, 0) url("https://www.google.fr/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png") repeat scroll 0 0;
}
Run Code Online (Sandbox Code Playgroud)

(丑陋)小提琴

正如您所看到的,我正在尝试完全删除background属性CSS(在我的示例中为Google徽标),而不使用Jquery.

在我的例子中,我无法编辑CSS,也没有编写DOM之前的东西<div id="foobar">.

注意:如果在CSS中使用background-image相同的url而不是使用CSS,则一切正常background

任何的想法 ?

资源:

t.n*_*ese 5

您应该只使用以下代码:

 var foobarElement = document.getElementById('foobar');
 foobarElement.style.background = 'none';
Run Code Online (Sandbox Code Playgroud)

设置样式属性以''删除当前设置的值,并且不将其设置为空值.

你写的代码:

var foobarElement = document.getElementById('foobar');
foobarElement.style.backgroundImage = '';
foobarElement.style.background = '';
foobarElement.style.backgroundUrl = '';
foobarElement.style.backgroundColor = 'green';
Run Code Online (Sandbox Code Playgroud)

将导致:

<div id="foobar" style="background-color: green">
Run Code Online (Sandbox Code Playgroud)

因此background-image,您的#foobar规则仍然适用.

如果你这样做foobarElement.style.background = 'none';那么它将导致:

<div id="foobar" style="background: none">
Run Code Online (Sandbox Code Playgroud)

这将覆盖规则的background-image集合#foobar.或者,如果您只想删除背景图像,那么您将使用foobarElement.style.backgroundImage = 'none';


小智 5

有点棘手,无论如何工作正常,使用

 foobarElement.style.background="0";
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/zn2g73rz/9/