js怎么实现对复选框的事件,如果先选中全选后,点击取消其中一个没有选中,全选的勾也消失,怎么做

现在我的问题是点击全选后我再取消数学,全选的勾不能去掉,怎么才可以去掉全选勾function all2() { var flag = document.getElementById("quanxuan").checked; var all2 = document.getElementsByName("chb"); if (flag == true) { for (var i = 0; i <= all2.length; i++) { all2[i].checked = true; } } else { for (var i = 0; i <= all2.length; i++) { all2[i].checked = false; } } }<body> <input type="checkbox" id="quanxuan" onclick="all2();" />全选 <input type="checkbox" name="chb" id="yw" value="语文" />语文 <input type="checkbox" name="chb" id="shx" value="数学" />数学 <input type="checkbox" name="chb" id="yy" value="英语" />英语 <input type="checkbox" name="chb" id="zhzh" value="政治" />政治 <input type="checkbox" name="chb" id="hx" value="化学" />化学 </body>

$('.chb').bind('click', function () {

if ($(this).prop("checked") != true) {
if ($("#quanxuan").prop("checked") == true) {
$("#quanxuan").prop('checked', false);
}
}
else {
//判断当页每一行的checkbox 是否被选中
CheckBoxCheckedALL();
}
});

function CheckBoxCheckedALL()
{
var n = 0;
var che = true;//标示位
//获取所有的checkbox
var items = $('input[class="chb"]');
for (var i = 0; i < items.length; i++) {
if (!items[i].checked) {
che = false;
return;
}
n++;
}
if (che) {
$("#quanxuan").prop('checked', true);
}
}追问

不行。我上面的代码怎么改

追答

我的是JQuery
function all2() {
var flag = document.getElementById("quanxuan").checked;
var all2 = document.getElementsByName("chb");

for (var i = 0; i <= all2.length; i++) {
all2[i].checked = this.checked;
}
}
var t=document.getElementByName("chb");
t.onclick = function tst(){
//在这里面操作

}

追问

怎么写

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答