如何用javascript实现checkbox父节点选中子节点选中取消则全部取消

xxrs736027329 2010-02-24 01:18:23
<script type="text/javascript">
function OnTreeNodeChecked() {
var ele = event.srcElement;
if (ele.type == 'checkbox') {
var childrenDivID = ele.id.replace('CheckBox', 'Nodes');
var div = document.getElementById(childrenDivID);
if (div != null) {
var checkBoxs = div.getElementsByTagName('INPUT');
for (var i = 0; i < checkBoxs.length; i++) {
if (checkBoxs[i].type == 'checkbox')
checkBoxs[i].checked = ele.checked;
}
}
OnTreeNodeChildChecked(ele);


}
}

function OnTreeNodeChildChecked(ele) {
//自动处理上级
var parentDiv = ele.parentElement.parentElement.parentElement.parentElement.parentElement;
var parentChkBox = document.getElementById(parentDiv.id.replace('Nodes', 'CheckBox'));
if (parentChkBox != null) {
var ChildsChkAll = true;
var Boxs = parentDiv.getElementsByTagName('INPUT');
for (var i = 0; i < Boxs.length; i++) {
if (Boxs[i].type == 'checkbox' && Boxs[i].checked == false) {
ChildsChkAll = false;
}
}
parentChkBox.checked = ChildsChkAll;
OnTreeNodeChildChecked(parentChkBox);
}
}
这样写行吗
...全文
133 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
happy664618843 2010-02-24
  • 打赏
  • 举报
回复
判断父节点是否是checkbox obj.parentNode.tagName!=input
happy664618843 2010-02-24
  • 打赏
  • 举报
回复
parentElement 最好改成 parentNode parentElement在ff中不支持
varkychan 2010-02-24
  • 打赏
  • 举报
回复
不明白你的问题!请说得详细点
shan1119 2010-02-24
  • 打赏
  • 举报
回复
demo
<html>
<head>
<title>Hello, jQuery World!</title>
<script>
function checkChild(name){
var childobj=document.getElementsByName(name);
for(var i=0;i<childobj.length;i++){
childobj[i].checked=document.getElementById(name).checked;
}
}
</script>
</head>

<body>
<input id="chk1" type="checkbox" value="parent" onclick="checkChild('chk1');"/>
<input name="chk1" type="checkbox" value="child1" />
<input name="chk1" type="checkbox" value="child2" />
<input name="chk1" type="checkbox" value="child3" />

</body>
</html>
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-02-24 01:18
社区公告
暂无公告