这是 HTML
<p>texjksdgfjl sdjfg sjdfg</p>
<p> </p>
<p>texjksdgfjl sdjfg sjdfg</p>
<p> </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/