我在附表中进行检查时遇到问题,颜色样式非常有效,除非我点击第一个任何复选框都不会改变颜色样式。
我粘贴代码,我只使用javascript pure。
enter function valid(chk){
var trckk = document.getElementsByTagName('tr');
var parent = chk.parentNode.parentNode;
var chkcomite = document.getElementsByName('idcom');
var len = chkcomite.length;
for(var i=0;i<len;i++){
if(chkcomite[i].checked === true){
if(chkcomite[i]!=chk && chk.checked){
chkcomite[i].checked = false;
for(var i=0;i<trckk.length;i++){
trckk[i].style.background='';
trckk[i].style.color='';
}
}
parent.style.background='#EC1C24';
parent.style.color='#FFF';
}else{
parent.style.background='';
parent.style.color='';
}
}
}
这里
你能帮助我吗? 感谢。答案 0 :(得分:0)
我认为你必须写这样的函数
function valid(chk) {
var parent = chk.parentNode.parentNode;
if (!chk.checked) {
parent.style.background = "";
parent.style.color = "";
return;
}
var trckk = document.getElementsByTagName("tr");
var chkcomite = document.getElementsByName("idcom");
var len = chkcomite.length;
for (var i = 0; i < trckk.length; i++) {
trckk[i].style.background = "";
trckk[i].style.color = "";
}
for (var i = 0; i < len; i++) {
chkcomite[i].checked = false;
chkcomite[i].parentNode.parentNode.style.background = "";
chkcomite[i].parentNode.parentNode.style.color = "";
}
chk.checked = true;
parent.style.background = "#EC1C24";
parent.style.color = "#FFF";
}
&#13;
<table>
<tr>
<td>
row 1
</td>
<td>
<input onchange="valid(this)" name="idcom" type='checkbox'>
</td>
</tr>
<tr>
<td>
row 2
</td>
<td>
<input onchange="valid(this)" name="idcom" type='checkbox'>
</td>
</tr>
<tr>
<td>
row 3
</td>
<td>
<input onchange="valid(this)" name="idcom" type='checkbox'>
</td>
</tr>
</table>
&#13;