<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<FORM name="subform" id="subform" METHOD=POST ACTION="">
1<INPUT TYPE="checkbox" NAME="ids" value="-1" xname="0" οnclick="xuan(this)"><br/>
1.1<INPUT TYPE="checkbox" NAME="ids" value="1" xname="-1" οnclick="xuan(this)"><br/>
1.1.1<INPUT TYPE="checkbox" NAME="ids" value="11" xname="1" οnclick="xuan(this)"><br/>
1.1.1.1<INPUT TYPE="checkbox" NAME="ids" value="111" xname="11" οnclick="xuan(this)"><br/>
1.1.1.2<INPUT TYPE="checkbox" NAME="ids" value="112" xname="11" οnclick="xuan(this)"><br/>
1.1.1.3<INPUT TYPE="checkbox" NAME="ids" value="113" xname="11" οnclick="xuan(this)"><br/>
1.1.1.4<INPUT TYPE="checkbox" NAME="ids" value="114" xname="11" οnclick="xuan(this)"><br/>
1.1.2<INPUT TYPE="checkbox" NAME="ids" value="12" xname="1" οnclick="xuan(this)"><br/>
1.1.3<INPUT TYPE="checkbox" NAME="ids" value="13" xname="1" οnclick="xuan(this)"><br/>
1.1.4<INPUT TYPE="checkbox" NAME="ids" value="14" xname="1" οnclick="xuan(this)"><br/>
1.2<INPUT TYPE="checkbox" NAME="ids" value="2" xname="-1" οnclick="xuan(this)"><br/>
</FORM>
</BODY>
<SCRIPT LANGUAGE="JavaScript">
function xuan(input)
{
zhuaFu(input);
zhuaZi(input);
}
function sfChecked(input){
//得到当前的input的value
var value = input.value;
//抓到所有input
var inputs = document.forms['subform'].elements;;
//循环判断
for(var i = 0;i<inputs.length;i++)
{
//抓到xname
var name = inputs[i].getAttribute("xname");
//如果xname和现在input 的value相等
if(name==value && inputs[i].checked == true)
{
return true;
}
}
return false;
}
//抓所有父input
function zhuaFu(input)
{
//得到当前的input value
var zhi = input.value;
//如果value不等于-1 递归查找
if(zhi != "-1")
{
//抓到xmane
var xname = input.getAttribute("xname");
var inp;
//抓到所有input
var inputs = document.forms['subform'].elements;
//循环
for(var i =0;i<inputs.length;i++)
{
//如果得到value 和xname相等则是当前的父id
if(inputs[i].value==xname)
{
//抓到这个input
inp = inputs[i];
//设定这个选中
inputs[i].checked=sfChecked(inputs[i]);
}
}
//递归入口
zhuaFu(inp);
}
//递归出口
return;
}
//抓所有子input
function zhuaZi(input)
{
//得到当前的input的value
var value = input.value;
//抓到所有input
var inputs = document.forms['subform'].elements;;
//循环判断
for(var i = 0;i<inputs.length;i++)
{
//抓到xname
var name = inputs[i].getAttribute("xname");
//如果xname和现在input 的value相等
if(name==value)
{
//设定抓到的input 选中状态等于当前的选中状态
inputs[i].checked = input.checked;
//递归入口
zhuaZi(inputs[i]);
}
}
//递归出口
return;
}
</SCRIPT>
</HTML>