最近做的项目中使用jQuery实现全选checkbox功能发现代码在IE中不兼容,尝试了各种途径都比较麻烦,所以采用了一种比较简单的方式:
原来代码为
$("[name = chkItem]:checkbox").attr("checked", true);
目的是实现name为chkItem的checkbox全选,但是在IE中无法正常工作。
修改为
</pre><pre name="code" class="html"> var allCheckBoxs = document.getElementsByName("chkItem"); //得到需要复选框集合
var dialogLayerId = document.getElementById('dialogLayerTab');
var rowsLength = dialogLayerId.rows.length;//表格总共有多少行
for(var i=1;i<rowsLength;i++){
if(dialogLayerId.rows[i].style.display==''){
if (allCheckBoxs[i-1].checked == false) {//排除失误操作
$("#dialogLayerTab tr:eq(" + i + ") input:eq(0)").click();
}
}
}
使用了逐个点击的方法来实现选中和取消,效率不高不过实现起来更简单。
P.S. 需要注意的是在点击之前先判断当前状态,如果全选操作,复选框中存在已经选中的则进行排除,反选也是如此。