javascript - 颜色切换按钮
问题描述
我想构建一个 Javascript 代码,当单击按钮时更改正文的背景颜色。控制台说这body.style.background
不是一个功能。你能说出我的代码中的错误是什么吗?
var btn = document.querySelector("button");
var body = document.querySelector("body");
var colors = ["red", "blue", "green", "yellow", "orange", "pink"];
var i = 0;
btn.addEventListener("click", function(){
if (i < colors.length) {
i++;
} else if (i == colors.length) {
i = 0;
}
body.style.background("colors[i]");
});
解决方案
你需要做body.style.background = colors[i];
asbackground
的一个属性,style
所以应该为它分配颜色的值,而不是把它作为一个函数调用并将参数传递给它。
var btn = document.querySelector("button");
var body = document.querySelector("body");
var colors = ["red", "blue", "green", "yellow", "orange", "pink"];
var i = 0;
btn.addEventListener("click", function(){
if (i < colors.length) {
i++;
} else if (i == colors.length) {
i = 0;
}
body.style.background = colors[i];
});
<body>
some content
<button>Click</button>
</body>
您可以进一步重构您的代码,使其看起来更简单:
var btn = document.querySelector("button");
var body = document.querySelector("body");
var colors = ["red", "blue", "green", "yellow", "orange", "pink"];
var i = 0;
btn.addEventListener("click", function(){
i = i < colors.length ? ++i : 0;
body.style.background = colors[i];
});
<body>
some content
<button>Click</button>
</body>
推荐阅读
- neo4j - apoc.merge.node() Neo4j 中的 Hanlde 空值
- sql - 查找每个薪资范围内工作经验最长的前 2 名员工
- python - 有没有一种快速的方法可以将这种类型的数据转换为 python 中的字典?
- python - 如何在 C++ 中创建一个返回向量的递归函数?
- aws-lambda - 无法通过邮递员使用带有两个参数的 url 查询将项目放入 dynamoDB
- python - Web Scraping with Beautiful Soup Python - Seesaw - 输出没有长度错误
- laravel - 在 Trix 字段中添加/更新上传图像的链接
- python - 从冻结窗口中读取文本框
- jmeter - 在基于上一个请求的响应的 JMeter 中需要在下一个请求中有动态输入
- python - 我如何为这个计时器编写一个测试,这个计时器是我为 python 中的一个程序制作的,它至少有 75% 的测试覆盖率?