函数f1()怎么实现小类全部取消选择后,大类的复选框才取消选择? 本帖最后由 sayfree 于 2012-04-15 22:19:02 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //调用时需要向f1函数传递this参数://<input type="checkbox" name="checkbox2" value="checkbox" onclick="f1(this)"/>function f1(obj) { var chks = obj.parentNode.parentNode.getElementsByTagName('input'); //当前大类下所有小类复选框集合 var tr = obj.parentNode.parentNode.parentNode.parentNode.parentNode; var tmp = tr.previousSibling; while (tmp.nodeType != 1) { tmp = tmp.previousSibling; } var c = tmp.getElementsByTagName('input')[0]; //大类复选框 var counter = 0; for (var i = 0; i < chks.length; i ++) { if (chks[i].checked == false) counter ++; } if (counter == chks.length) c.checked = false;} 关键在于节点的访问,如果你在循环输出表格数据的时候给所有的checkbox元素加上类属性,比如外层元素class="chk_<%=i%>",内层的元素class="chk_<%=i%>_<%=j%>",然后在查找的时候就可以先获取所有的input元素,然后通过class属性来筛查需要的元素,尽管效率低一些,但逻辑上更加清晰。否则就只能通过元素的祖先节点、兄弟节点来进行查找定位,比较容易出错。再加上你没有给出生成的html代码,所以没办法进行测试,也不知道1楼的代码能不能达到预期目的。。 ext4 通过一个按钮 设置grid某个单元格的css样式 求教【间断的】无缝滚动图片。在线等、。。。。。 帮我分析一下这几个IF里的是怎么计算的? 问一个OBJECT对象的问题 关于文字颜色渐变的效果 页面显示问题 一个简单的字符替换问题 我在网站后台管理中使用了rte.js,结果每次使用都是访问被拒绝。高手求助啊 按下按钮打开一个新窗口? jsp中的div标签添加横向滚动条无法实现是怎么回事 我了个擦,调了一晚上,终于知道jQuery的恶心了 当一个页面同时有两个setInterval函数调用的冲突如何解决?
//<input type="checkbox" name="checkbox2" value="checkbox" onclick="f1(this)"/>
function f1(obj) {
var chks = obj.parentNode.parentNode.getElementsByTagName('input'); //当前大类下所有小类复选框集合
var tr = obj.parentNode.parentNode.parentNode.parentNode.parentNode;
var tmp = tr.previousSibling;
while (tmp.nodeType != 1) {
tmp = tmp.previousSibling;
}
var c = tmp.getElementsByTagName('input')[0]; //大类复选框
var counter = 0;
for (var i = 0; i < chks.length; i ++) {
if (chks[i].checked == false) counter ++;
}
if (counter == chks.length) c.checked = false;
}