Javascript JS返回标签背景色
这是我的HTML:Javascript JS返回标签背景色,javascript,input,label,radio,Javascript,Input,Label,Radio,这是我的HTML: <body> <div class="container"> <img src="2.png" /> <div id="colorChange"></div> </div> <div class="colorChoice"> <form id="colorChoiceForm"> &l
<body>
<div class="container">
<img src="2.png" />
<div id="colorChange"></div>
</div>
<div class="colorChoice">
<form id="colorChoiceForm">
<ul id="colorListParent">
<li class="noButton">
<input type="radio" name="colorGroup" value="aaa12" id="aaa12" />
<label style="background-color:#d21212" class="colorPick" for="aaa12"></label>
</li>
<li class="noButton">
<input type="radio" name="colorGroup" value="daaa" id="daaa"/>
<label style="background-color:#202020" class="colorPick" for="daaa"></label>
</li>
</ul>
</form>
</div>>
</body>
直到我用for/id脚本工作的按钮绑定标签-bby,我的意思是颜色的背景色更改为单击标签的颜色。
现在,var bgrColor返回两个字符串——第一个是我需要的颜色,但第二个是空的,并且colorChange的颜色没有改变
问题出在哪里?一旦您开始使用标签[for],您将不得不以不同的方式处理它,因为您的单击事件将触发两次-一次用于标签,一次用于自动选择的单选按钮。是一把工作小提琴,下面是修改后的JS代码
function load() {
document.getElementById("colorListParent").addEventListener("click", function(e){
//alert(e.target.id);
if(e.target.id) {
var selector = 'label[for=' + e.target.id + ']';
var label = document.querySelector(selector);
var bgrColor = label.style.backgroundColor;
//alert(bgrColor);
//alert(typeof bgrColor);
document.getElementById("colorChange").style.backgroundColor = bgrColor;
}
});
}
window.onload = load;
单击标签时,还会单击“input”DOM元素,因此基本上有2个“click”事件。 尝试添加类似的内容:
if(bgrColor && bgrColor.length>0){
document.getElementById("colorChange").style.backgroundColor = bgrColor;
}
你能为它编一把小提琴吗?@huanfeng,给你:
if(bgrColor && bgrColor.length>0){
document.getElementById("colorChange").style.backgroundColor = bgrColor;
}