【发布时间】:2015-12-20 21:53:34
【问题描述】:
我正在以这种方式将 tr 和 td 动态添加到表中。
var arr=[1,2,3];
var trtest = "<tr>";
trtest = trtest +"<tr><td><input type='checkbox' onclick=onAllCheckBoxClick('" + arr+ "') class = 'all' id ='all'>All</td></tr>";
$.each(arr, function(i, tmp) {
trtest = trtest +"<tr><td><input type='checkbox' onclick=onCheckBoxClick('" + this+ "','" + arr+ "') class = 'all' id ='"+tmp+"'/>"+tmp+"</td></tr>";
});
此代码正在运行,我通过这种方式获得了 4 个复选框,
All
1
2
3
在这里,当我尝试检查单个子复选框的 1、2、3 时,必须选中所有复选框。
我尝试以这种方式将此点击事件添加到每个复选框,
function onCheckBoxClick(checkBoxId,arr){
var chkselected = [];
$('#generateTable').find(':checkbox:checked').each(function() {
chkselected.push(this.id);
});
//
if (arr.split(",").length == chkselected.length && ($('#'+checkBoxId).is(':checked') == true)) {
$('#all').attr('checked',true);
}
//
else if (arr.split(",").length == chkselected.length && ($('#'+checkBoxId).is(':checked') == false)) {
$('#all').attr('checked',false);
}
}
问题是当我检查 1,2,最后是 3 立即检查所有复选框,
但是当我最后尝试检查 3,2 和 1 时,未选中所有复选框。
如果选中 1,2,3,我希望全部选中,如果未选中 1,2,3 中的任何一个,我希望全部取消选中。
我是 jQuery 新手,谁能帮我解决这个问题?
【问题讨论】:
-
请在jsFiddle上发布一个说明您的问题的功能示例。
标签: javascript jquery html checkbox html-table