javascript - 使用类更改单击时的背景颜色
问题描述
这是我的代码:
function black() {
document.querySelectorAll(".object").style.backgroundColor = "black";
}
function red() {
document.querySelectorAll(".object").style.backgroundColor = "red";
}
function blue() {
document.querySelectorAll(".object").style.backgroundColor = "blue";
}
.object {
width: 200px;
height: 200px;
background-color: black;
margin: 20px;
}
<button id="button_black" class="color_change" onclick="black()" value="black">Black</button>
<button id="button_red" class="color_change" onclick="red()" value="red">Red</button>
<button id="button_blue" class="color_change" onclick="blue()" value="blue">Blue</button>
<div class="object"></div>
<div class="object"></div>
不幸的是,它不起作用。如果我将 »document.querySelectorAll« 更改为 »document.querySelector« 并改用 ID,则它适用于一个对象。但我需要它作为类。怎么可能解决这个问题?
唐克斯。
解决方案
您的问题是document.querySelectorAll
返回一个 NodeList,您需要遍历其中的值,更改每个值的背景:
function black() {
document.querySelectorAll(".object").forEach(v => v.style.backgroundColor = "black");
}
function red() {
document.querySelectorAll(".object").forEach(v => v.style.backgroundColor = "red");
}
function blue() {
document.querySelectorAll(".object").forEach(v => v.style.backgroundColor = "blue");
}
.object {
width: 200px;
height: 200px;
background-color: black;
margin: 20px;
}
<button id="button_black" class="color_change" onclick="black()" value="black">Black</button>
<button id="button_red" class="color_change" onclick="red()" value="red">Red</button>
<button id="button_blue" class="color_change" onclick="blue()" value="blue">Blue</button>
<div class="object"></div>
<div class="object"></div>
推荐阅读
- django - React-admin 关闭对 X-Total-Count 的依赖
- java - 如何修剪编码的字符串?
- python - 如何在多次 atemps 后修复未知登录
- java - Java 8如何获取具有最大值的流实例
- vue.js - 如何在模板中使用js数据?
- python-2.7 - 如何反转pyspark数据框
- python - 字幕中matplotlib上标中的字体字距调整(字符之间的水平间距)?
- c# - 扩展 C# async/await await 不等待
- java - 如何使 JScrollPane 滚动到 html 文件中的内容超链接指定的位置?
- android - 如何选择我在 Android 上使用的麦克风?