【发布时间】:2023-03-19 08:02:01
【问题描述】:
带有 id 的 div 正在点击,带有 class 的 div 没有点击。通过单击 div 我想更改颜色。如果 div 类中的颜色输入不起作用,如果它不在 div 类中,则它可以正常工作。我该如何解决这个问题?
var div = document.getElementsByTagName("div");
var divCount = div.length;
var clickedDivId;
for (var i = 0; i < divCount; i += 1) {
div[i].onclick = function(e) {
if (e.target.id) alert(this.id);
clickedDivId = this.id;
e.stopPropagation();
};
}
function BackgroundColor(){
var x = document.getElementsByClassName("backgroundcolor")[0].value;
document.getElementById(clickedDivId).style.backgroundColor = x;
}
#divid{
width: 450px;
height: 170px;
margin: 10px;
padding: 10px;
background-color: blue;
}
.divclass{
width: 450px;
height: 170px;
margin: 10px;
padding: 10px;
background-color: blue;
}
<div class="divclass">
<input type="color" class="backgroundcolor" onchange="BackgroundColor()">
</div>
<div id="divid"></div>
【问题讨论】:
-
只是因为有class的div没有id,所以不能通过id选择。
-
您没有获取输入标签的值。您在 BackgroundColor(); 的第一行中获取 div 的值;函数,这是错误的。
-
我该如何改变这个?必须只单击 div“id”并且可以更改颜色。 div“类”中性或不点击。输入必须在 div 类中。我会有很多 div “id”,每个都需要更改颜色...?
标签: javascript input colors background click