【发布时间】:2023-04-06 15:48:01
【问题描述】:
我正在尝试制作一个按钮,只要用户单击该按钮,该按钮就会将段落元素的颜色更改为随机颜色。它似乎不起作用,我的文本编辑器(括号)告诉我我犯了 12 个错误,但我并没有真正看到它。 这是我在网页末尾写的:
<button id="button1">Color Changer</button>
</div>
</div>
</div>
<script type="text/javascript" src=script.js></script>
</body>
</html>
这是 script.js:
var button1El = document.getElementById("button1");
var paragraphsEl = document.getElementsByTagName("p");
var colorChange = function () {
var r = Math.floor(Math.random() * 255);
var g = Math.floor(Math.random() * 255);
var b = Math.floor(Math.random() * 255);
for (var i = 0; i < paragraphsEl.length; i += 1) {
paragraphsEl[i].style.color = rgb(r, g, b);
}
}
button1El.addEventListener("click", colorChange);
提前致谢!
【问题讨论】:
-
“我的文本编辑器(括号)告诉我我犯了 12 个错误,但我并没有真正看到它” 它到底在告诉你什么?我的猜测是它与
paragraphsEl.style.color有关 -
paragraphsEl将是一个数组,一个数组没有样式。数组中的元素做 -
内部 ESlint:文档未定义。 g 已经定义。 rgb 未定义。 b 未定义。
-
在 JSlint 内部:缺少“使用严格”。 g 已经定义。 rgb 在定义之前使用。
-
你真的应该只将整数放入
rgb(...)。而不是做Math.random() * 255做Math.floor(Math.random() * 255)你还试图在一个元素数组上设置style.color。您需要遍历数组并分别在每个数组上设置style.color。此外,将style.color设置为字符串,JS 将其解析为函数,因此它正在寻找一个名为rgb的函数,该函数不存在。
标签: javascript html dom random dom-events