javascript改变元素背景

标签 javascript

这是 HTML

<p>texjksdgfjl sdjfg sjdfg</p>
<p>&nbsp;</p>
<p>texjksdgfjl sdjfg sjdfg</p>
<p>&nbsp;</p>
<p>texjksdgfjl sdjfg sjdfg</p>

这是 JavaScript
var d = document.getElementsByTagName("p"); 

for (var i=0;i<d.length;i++)
{ 
    var text = d[i].textContent;

    if (text.length===1){
        d[i].style.background ='blue';
    }
    else {
        d[i].setAttribute("backgroundColor", "red");
    }
}

(显然)我可以做我想做的事 - 包含一些文本的 p 元素的不同背景,而不是生成为 < p > & nbsp; 的 p 元素。



但是为什么 setAttribute 不起作用?
我一定错过了一些非常简单的东西,但对于我的生活,我无法想象它是什么。
请纯 JS,没有 jQuery,没有 MooTools,没有其他库。

这是测试 fiddle :enter link description here

最佳答案

好吧,setAttribute函数没有做你认为它做的事情。

如果您检查 jsfiddle 中的元素,您会看到:

... <p backgroundcolor="red" ...>

这绝对不是你想要的。你想要的是这样的:
setAttribute("style", "background-color: red;");

所以它会变成
... <p style="background-color: red;" ...>

关于javascript改变元素背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15295381/

相关文章:

javascript - PhantomJS不支持音频标签

javascript - 在 ColdFusion 中获取页面位置

javascript - 为什么 firebug 在调试时会改变网站的行为?

javascript - JQuery 对元素的多个级别进行选择

javascript - 我需要帮助查明为什么我的 React Material UI 移动版 AppBar 无法渲染?

javascript - 是否可以在node.js中为模块变量定义一个设置函数

javascript - 应用程序.js :63 Uncaught ReferenceError: GLTFLoader is not defined

javascript - CSS+JS : div click (and elements inside it)

javascript - 没有密码的 Meteor 帐户

javascript - 为什么这个函数不能检测重叠的圆?