我试图创建一个按钮,每当用户单击按钮时,该元素就会将段落元素的颜色更改为随机颜色。它似乎不起作用,我的文本编辑器(Brackets)告诉我我犯了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);
谢谢!
答案 0 :(得分:0)
这里有些错误,我在上面的评论中列出了
paragraphsEl
是一个数组,不能在数组上设置style.color
,需要遍历数组中的每个项目以设置该值style.color
将使用字符串值,您正尝试调用名为rgb
的函数(该函数不存在),并传入字符串以使此工作有效关闭,但是您似乎忘记了一些事情。
请记住,将问题分解成碎片并弄清楚在某些地方使用的数据类型将帮助您避免很多此类问题。
var button1El = document.getElementById("button1");
var paragraphsElements = 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 < paragraphsElements.length; i++) {
paragraphsElements[i].style.color = 'rgb(' + r + ', ' + g + ', ' + b + ')';
}
}
button1El.addEventListener("click", colorChange);
这是一个演示工作代码的codepen链接,由于没有测试它,我犯了一些错误: