你能解释一下这段代码有什么问题吗?
var a = document.getElementById("id1").style.color;
a = "blue"
应该将id1
的元素的文字颜色设置为蓝色
function randomColor() {
var cArr = '1234567890ABCDEF'.split('');
var c = "#";
for (var i = 0; i < 6; i++) {
c += cArr[Math.floor(Math.random() * 16)]
}
a = c;
return c;
}
randomColor();
看起来对我很好,但肯定不是因为它不起作用。 你能解释一下我做错了什么吗?
答案 0 :(得分:4)
您正在将a
设置为原始值。因此,您无法指定颜色。
function randomColor() {
var c = "#";
for (var i = 0; i < 6; i++) {
c += (Math.random() * 16 | 0).toString(16);
}
return c;
}
var a = document.getElementById("id1").style;
a.color = randomColor();
<h1 id="id1">stackoverflow</h1>
答案 1 :(得分:3)
a =“blue”应该将id1的元素的文本颜色设置为蓝色
不,不是真a
包含元素id1
的当前颜色。
要设置颜色,您可以将元素存储在变量中,然后在其中设置blue
颜色,如下所示:
var a = document.getElementById("id1");
a.style.color = "blue";
希望这有帮助。
function randomColor() {
var cArr = '1234567890ABCDEF'.split('');
var c = "#";
for (var i = 0; i < 6; i++) {
c += cArr[Math.floor(Math.random() * 16)]
}
return c;
}
var a = document.getElementById("id1");
a.style.color = randomColor();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id="id1">H1 element</h1>
答案 2 :(得分:2)
要回答这个问题,您需要了解数据如何传递和存储在变量中。您似乎知道对象是通过引用传递的,如果您将对象存储在多个不同的变量中,则可以修改一个对象,并且它们在所有变量中都会有所不同。
但是,当您将对象的属性存储在变量中,并且该属性具有普通数据类型(如number,string或boolean)时,该变量仅存储该值而不是引用。您要做的是将document.getElementById
调用中的结果元素存储在el
变量中,然后在函数中访问其style.color。
el.style.color = 'blue'