【发布时间】:2019-08-06 21:45:15
【问题描述】:
我正在尝试将这种颜色设置为“正方形”,点击后会改变颜色。 在第一个上它工作正常,但是当我单击其他时,颜色会发生在第一个上。
var image_tracker = 'red';
function changeColor() {
var image = document.getElementById('red')
if (image_tracker == 'red') {
image.style.backgroundColor = "blue";
image_tracker = 'blue';
} else {
image.style.backgroundColor = "red";
image_tracker = 'red';
}
}
<div id="red" onclick="changeColor()"></div>
<div id="red" onclick="changeColor()"></div>
<div id="red" onclick="changeColor()"></div>
没有错误消息,它只是不像我期望的那样工作:D
【问题讨论】:
-
您有重复的 ID,这是无效的标记,以及为什么它不能像您期望的那样工作。改用类。见this post。
-
以上所有,但还要注意函数名称 -
getElementById得到一个 元素(不是元素)。getElementsByClassName(更适合您的要求)获取 elements(复数)。 (不,没有getElementsById,因为应该只有 1 个具有唯一 ID 的元素) -
切换一个类来维护状态,比用变量搞清楚要容易得多。
-
使用
querySelectorAll,是的,使用类而不是id的
标签: javascript html css