1

我在下面有这个代码..

<script>  document.getElementById('example').style.background-color =
'#FFCC00';    
</script>
<div id="example">This is an example.</div>

为什么它不起作用?

4

5 回答 5

7

该脚本在具有给定 id 的元素存在之前运行,并且您有一个带有连字符的DOM 属性名称(它被视为减号运算符)。

<!-- Put the element first -->
<div id="example">This is an example.</div>
<script>
    // camelCase CSS property names when converting to DOM property names
    document.getElementById('example').style.backgroundColor = '#FFCC00';    
</script>

请参阅上述代码片段的实时示例。

您可以将 JS 语句包装在一个函数中,然后在元素存在后调用它,而不是将元素放在首位。您可以通过将其作为事件处理程序绑定到合适的东西(例如文档加载事件)来自动发生这种情况。

于 2012-09-06T14:06:35.763 回答
2

你应该写 backgroundColor

于 2012-09-06T14:06:59.060 回答
1

代码中需要更改的 2 件事。

  1. 照原样,您的代码顺序错误。您需要先拥有 HTML,然后是 JS。按此顺序该元素尚不存在,JS 正在执行,DOM 对象尚不存在。

  2. 没有“背景颜色”属性。而是使用“.backgroundColor”。破折号通常用驼色外壳代替。

这是一个工作示例

<div id="example">This is an example.</div>

<script>
  document.getElementById('example').style.backgroundColor = '#FFCC00';
</script>

另一个提示

如果要将订单作为依赖项删除,可以将 JavaScript 包装在“onload”事件处理程序中。

于 2012-09-06T14:17:09.257 回答
0

将 更改<script>为低于您的元素并使用backgroundColor

<div id="example">This is an example.</div>
<script>  
    document.getElementById('example').style.backgroundColor ='#FFCC00';    
</script>
于 2012-09-06T14:10:21.677 回答
0

更新:

<div id="example">This is an example.</div>
<script>document.getElementById('example').style.setProperty('background-color','#fco','important');</script>

,'重要'不是必需的

于 2018-10-03T17:28:36.193 回答