代码如下:<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>
编 号</td>
<td>
内 容 </td>
<td>
<input id="Checkbox1" type="checkbox" />全选</td>
</tr>
<tr>
<td>
1</td>
<td>
1.当此节点被选中后,其下的子节点都被选中,<br />
2.当以1开头的子节点有一个被选中时,1节点都被选中<br />
3.以1开头的子节点可以自由被选中或是取消。</td>
<td>
<input id="Checkbox2" type="checkbox" /></td>
</tr>
<tr>
<td>
1.1</td>
<td>
</td>
<td>
<input id="Checkbox3" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2</td>
<td>
</td>
<td>
<input id="Checkbox4" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1</td>
<td>
注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
原因</td>
<td>
<input id="Checkbox5" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1.1</td>
<td>
</td>
<td>
<input id="Checkbox6" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3</td>
<td>
</td>
<td>
<input id="Checkbox7" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3.1</td>
<td>
</td>
<td>
<input id="Checkbox8" type="checkbox" /></td>
</tr>
<tr>
<td>
1.4</td>
<td>
</td>
<td>
<input id="Checkbox9" type="checkbox" /></td>
</tr>
<tr>
<td>
2</td>
<td>
</td>
<td>
<input id="Checkbox10" type="checkbox" /></td>
</tr>
<tr>
<td>
2.1</td>
<td>
</td>
<td>
<input id="Checkbox11" type="checkbox" /></td>
</tr>
<tr>
<td>
3</td>
<td>
</td>
<td>
<input id="Checkbox12" type="checkbox" /></td>
</tr>
<tr>
<td>
3.1</td>
<td>
</td>
<td>
<input id="Checkbox13" type="checkbox" /></td>
</tr>
<tr>
<td>
10</td>
<td>
</td>
<td>
<input id="Checkbox14" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1</td>
<td>
</td>
<td>
<input id="Checkbox15" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.1</td>
<td>
</td>
<td>
<input id="Checkbox16" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.2</td>
<td>
</td>
<td>
<input id="Checkbox17" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.3</td>
<td>
</td>
<td>
<input id="Checkbox18" type="checkbox" /></td>
</tr>
<tr>
<td>
10.2</td>
<td>
</td>
<td>
<input id="Checkbox19" type="checkbox" /></td>
</tr>
<tr>
<td>
11</td>
<td>
</td>
<td>
<input id="Checkbox20" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1</td>
<td>
</td>
<td>
<input id="Checkbox21" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.1</td>
<td>
</td>
<td>
<input id="Checkbox22" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.2</td>
<td>
</td>
<td>
<input id="Checkbox23" type="checkbox" /></td>
</tr>
</table>
<tr>
<td>
编 号</td>
<td>
内 容 </td>
<td>
<input id="Checkbox1" type="checkbox" />全选</td>
</tr>
<tr>
<td>
1</td>
<td>
1.当此节点被选中后,其下的子节点都被选中,<br />
2.当以1开头的子节点有一个被选中时,1节点都被选中<br />
3.以1开头的子节点可以自由被选中或是取消。</td>
<td>
<input id="Checkbox2" type="checkbox" /></td>
</tr>
<tr>
<td>
1.1</td>
<td>
</td>
<td>
<input id="Checkbox3" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2</td>
<td>
</td>
<td>
<input id="Checkbox4" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1</td>
<td>
注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
原因</td>
<td>
<input id="Checkbox5" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1.1</td>
<td>
</td>
<td>
<input id="Checkbox6" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3</td>
<td>
</td>
<td>
<input id="Checkbox7" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3.1</td>
<td>
</td>
<td>
<input id="Checkbox8" type="checkbox" /></td>
</tr>
<tr>
<td>
1.4</td>
<td>
</td>
<td>
<input id="Checkbox9" type="checkbox" /></td>
</tr>
<tr>
<td>
2</td>
<td>
</td>
<td>
<input id="Checkbox10" type="checkbox" /></td>
</tr>
<tr>
<td>
2.1</td>
<td>
</td>
<td>
<input id="Checkbox11" type="checkbox" /></td>
</tr>
<tr>
<td>
3</td>
<td>
</td>
<td>
<input id="Checkbox12" type="checkbox" /></td>
</tr>
<tr>
<td>
3.1</td>
<td>
</td>
<td>
<input id="Checkbox13" type="checkbox" /></td>
</tr>
<tr>
<td>
10</td>
<td>
</td>
<td>
<input id="Checkbox14" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1</td>
<td>
</td>
<td>
<input id="Checkbox15" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.1</td>
<td>
</td>
<td>
<input id="Checkbox16" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.2</td>
<td>
</td>
<td>
<input id="Checkbox17" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.3</td>
<td>
</td>
<td>
<input id="Checkbox18" type="checkbox" /></td>
</tr>
<tr>
<td>
10.2</td>
<td>
</td>
<td>
<input id="Checkbox19" type="checkbox" /></td>
</tr>
<tr>
<td>
11</td>
<td>
</td>
<td>
<input id="Checkbox20" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1</td>
<td>
</td>
<td>
<input id="Checkbox21" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.1</td>
<td>
</td>
<td>
<input id="Checkbox22" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.2</td>
<td>
</td>
<td>
<input id="Checkbox23" type="checkbox" /></td>
</tr>
</table>
<script>
function doit(){
var obj = event.srcElement;
var td = obj.parentNode.parentNode.children[0];
var num = td.innerText;
num = num.replace(/\s/g,"");
var re = /\d+/g;
if(re.test(num)){
var a =document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
var td1 = a[i].parentNode.parentNode.children[0];
var num1 = td1.innerText;
num1 = num1.replace(/\s/g,"");
var r = new RegExp("^" + num + "\\..+","g");
if(r.test(num1)) a[i].checked = obj.checked;
}
}
}
}window.onload=function(){
var a =document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox") {a[i].onclick = doit;}
}
}
</script>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>
编 号</td>
<td>
内 容 </td>
<td>
<input id="Checkbox1" type="checkbox" />全选</td>
</tr>
<tr>
<td>
1</td>
<td>
1.当此节点被选中后,其下的子节点都被选中,<br />
2.当以1开头的子节点有一个被选中时,1节点都被选中<br />
3.以1开头的子节点可以自由被选中或是取消。</td>
<td>
<input id="Checkbox2" type="checkbox" /></td>
</tr>
<tr>
<td>
1.1</td>
<td>
</td>
<td>
<input id="Checkbox3" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2</td>
<td>
</td>
<td>
<input id="Checkbox4" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1</td>
<td>
注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
原因</td>
<td>
<input id="Checkbox5" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1.1</td>
<td>
</td>
<td>
<input id="Checkbox6" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3</td>
<td>
</td>
<td>
<input id="Checkbox7" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3.1</td>
<td>
</td>
<td>
<input id="Checkbox8" type="checkbox" /></td>
</tr>
<tr>
<td>
1.4</td>
<td>
</td>
<td>
<input id="Checkbox9" type="checkbox" /></td>
</tr>
<tr>
<td>
2</td>
<td>
</td>
<td>
<input id="Checkbox10" type="checkbox" /></td>
</tr>
<tr>
<td>
2.1</td>
<td>
</td>
<td>
<input id="Checkbox11" type="checkbox" /></td>
</tr>
<tr>
<td>
3</td>
<td>
</td>
<td>
<input id="Checkbox12" type="checkbox" /></td>
</tr>
<tr>
<td>
3.1</td>
<td>
</td>
<td>
<input id="Checkbox13" type="checkbox" /></td>
</tr>
<tr>
<td>
10</td>
<td>
</td>
<td>
<input id="Checkbox14" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1</td>
<td>
</td>
<td>
<input id="Checkbox15" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.1</td>
<td>
</td>
<td>
<input id="Checkbox16" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.2</td>
<td>
</td>
<td>
<input id="Checkbox17" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.3</td>
<td>
</td>
<td>
<input id="Checkbox18" type="checkbox" /></td>
</tr>
<tr>
<td>
10.2</td>
<td>
</td>
<td>
<input id="Checkbox19" type="checkbox" /></td>
</tr>
<tr>
<td>
11</td>
<td>
</td>
<td>
<input id="Checkbox20" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1</td>
<td>
</td>
<td>
<input id="Checkbox21" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.1</td>
<td>
</td>
<td>
<input id="Checkbox22" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.2</td>
<td>
</td>
<td>
<input id="Checkbox23" type="checkbox" /></td>
</tr>
</table>
<html>
<head>
<script>
var checkFlag = true;
function CheckAll()
{
var objCheckBoxs=document.getElementsByTagName("input");
if(checkFlag)
{
for(var i = 0; i < objCheckBoxs.length; i++)
{
if(objCheckBoxs[i].type == "checkbox")
{
objCheckBoxs[i].checked = true;
}
}
checkFlag = false;
}
else
{
for(var i = 0; i < objCheckBoxs.length; i++)
{
if(objCheckBoxs[i].type == "checkbox")
{
objCheckBoxs[i].checked = false;
}
}
checkFlag = true;
}
}
</script>
</head>
<body>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>
编 号</td>
<td>
内 容 </td>
<td>
<input id="Checkbox1" type="checkbox" onclick="CheckAll()" />全选</td>
</tr>
<tr>
<td>
1</td>
<td>
1.当此节点被选中后,其下的子节点都被选中,<br />
2.当以1开头的子节点有一个被选中时,1节点都被选中<br />
3.以1开头的子节点可以自由被选中或是取消。</td>
<td>
<input id="Checkbox2" type="checkbox" /></td>
</tr>
<tr>
<td>
1.1</td>
<td>
</td>
<td>
<input id="Checkbox3" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2</td>
<td>
</td>
<td>
<input id="Checkbox4" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1</td>
<td>
注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
原因</td>
<td>
<input id="Checkbox5" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1.1</td>
<td>
</td>
<td>
<input id="Checkbox6" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3</td>
<td>
</td>
<td>
<input id="Checkbox7" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3.1</td>
<td>
</td>
<td>
<input id="Checkbox8" type="checkbox" /></td>
</tr>
<tr>
<td>
1.4</td>
<td>
</td>
<td>
<input id="Checkbox9" type="checkbox" /></td>
</tr>
<tr>
<td>
2</td>
<td>
</td>
<td>
<input id="Checkbox10" type="checkbox" /></td>
</tr>
<tr>
<td>
2.1</td>
<td>
</td>
<td>
<input id="Checkbox11" type="checkbox" /></td>
</tr>
<tr>
<td>
3</td>
<td>
</td>
<td>
<input id="Checkbox12" type="checkbox" /></td>
</tr>
<tr>
<td>
3.1</td>
<td>
</td>
<td>
<input id="Checkbox13" type="checkbox" /></td>
</tr>
<tr>
<td>
10</td>
<td>
</td>
<td>
<input id="Checkbox14" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1</td>
<td>
</td>
<td>
<input id="Checkbox15" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.1</td>
<td>
</td>
<td>
<input id="Checkbox16" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.2</td>
<td>
</td>
<td>
<input id="Checkbox17" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.3</td>
<td>
</td>
<td>
<input id="Checkbox18" type="checkbox" /></td>
</tr>
<tr>
<td>
10.2</td>
<td>
</td>
<td>
<input id="Checkbox19" type="checkbox" /></td>
</tr>
<tr>
<td>
11</td>
<td>
</td>
<td>
<input id="Checkbox20" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1</td>
<td>
</td>
<td>
<input id="Checkbox21" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.1</td>
<td>
</td>
<td>
<input id="Checkbox22" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.2</td>
<td>
</td>
<td>
<input id="Checkbox23" type="checkbox" /></td>
</tr>
</table>
</body>
</html>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />
<title>注册</title>
</head> <body>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>
编 号</td>
<td>
内 容 </td>
<td>
<input id="Checkbox1" type="checkbox" name="checkbox" onclick="choice(this.id)" value="0" />全选</td>
</tr>
<tr>
<td>
1</td>
<td>
1.当此节点被选中后,其下的子节点都被选中,<br />
2.当以1开头的子节点有一个被选中时,1节点都被选中<br />
3.以1开头的子节点可以自由被选中或是取消。</td>
<td>
<input id="Checkbox2" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1" /></td>
</tr>
<tr>
<td>
1.1</td>
<td>
</td>
<td>
<input id="Checkbox3" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.1" /></td>
</tr>
<tr>
<td>
1.2</td>
<td>
</td>
<td>
<input id="Checkbox4" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.2" /></td>
</tr>
<tr>
<td>
1.2.1</td>
<td>
注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
原因</td>
<td>
<input id="Checkbox5" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.2.1" /></td>
</tr>
<tr>
<td>
1.2.1.1</td>
<td>
</td>
<td>
<input id="Checkbox6" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.2.1.1" /></td>
</tr>
<tr>
<td>
1.3</td>
<td>
</td>
<td>
<input id="Checkbox7" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.3" /></td>
</tr>
<tr>
<td>
1.3.1</td>
<td>
</td>
<td>
<input id="Checkbox8" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.3.1" /></td>
</tr>
<tr>
<td>
1.4</td>
<td>
</td>
<td>
<input id="Checkbox9" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.4" /></td>
</tr>
<tr>
<td>
2</td>
<td>
</td>
<td>
<input id="Checkbox10" type="checkbox" name="checkbox" onclick="choice(this.id)" value="2" /></td>
</tr>
<tr>
<td>
2.1</td>
<td>
</td>
<td>
<input id="Checkbox11" type="checkbox" name="checkbox" onclick="choice(this.id)" value="2.1" /></td>
</tr>
<tr>
<td>
3</td>
<td>
</td>
<td>
<input id="Checkbox12" type="checkbox" name="checkbox" onclick="choice(this.id)" value="3" /></td>
</tr>
<tr>
<td>
3.1</td>
<td>
</td>
<td>
<input id="Checkbox13" type="checkbox" name="checkbox" onclick="choice(this.id)" value="3.1" /></td>
</tr>
<tr>
<td>
10</td>
<td>
</td>
<td>
<input id="Checkbox14" type="checkbox" name="checkbox" onclick="choice(this.id)" value="10" /></td>
</tr>
<tr>
<td>
10.1</td>
<td>
</td>
<td>
<input id="Checkbox15" type="checkbox" name="checkbox" onclick="choice(this.id)" value="10.1" /></td>
</tr>
<tr>
<td>
10.1.1</td>
<td>
</td>
<td>
<input id="Checkbox16" type="checkbox" name="checkbox" onclick="choice(this.id)" value="10.1.1" /></td>
</tr>
<tr>
<td>
10.1.2</td>
<td>
</td>
<td>
<input id="Checkbox17" type="checkbox" name="checkbox" onclick="choice(this.id)" value="10.1.2" /></td>
</tr>
<tr>
<td>
10.1.3</td>
<td>
</td>
<td>
<input id="Checkbox18" type="checkbox" name="checkbox" onclick="choice(this.id)" value="10.1.3" /></td>
</tr>
<tr>
<td>
10.2</td>
<td>
</td>
<td>
<input id="Checkbox19" type="checkbox" name="checkbox" onclick="choice(this.id)" value="10.2" /></td>
</tr>
<tr>
<td>
11</td>
<td>
</td>
<td>
<input id="Checkbox20" type="checkbox" name="checkbox" onclick="choice(this.id)" value="11" /></td>
</tr>
<tr>
<td>
11.1</td>
<td>
</td>
<td>
<input id="Checkbox21" type="checkbox" name="checkbox" onclick="choice(this.id)" value="11.1" /></td>
</tr>
<tr>
<td>
11.1.1</td>
<td>
</td>
<td>
<input id="Checkbox22" type="checkbox" name="checkbox" onclick="choice(this.id)" value="11.1.1" /></td>
</tr>
<tr>
<td>
11.1.2</td>
<td>
</td>
<td>
<input id="Checkbox23" type="checkbox" name="checkbox" onclick="choice(this.id)" value="11.1.2" /></td>
</tr>
</table>
<script>
function choice(id){
var checkes = document.getElementsByName("checkbox");
var value = document.getElementById(id).value ;
var isChecked = document.getElementById(id).checked ;
for(var i=0;i<checkes.length;i++){
if(value=='0'){
checkes[i].checked = isChecked ;
}else{
var list = value.split(".") ;
var cList = checkes[i].value.split(".") ;
if(cList.length > list.length){
var flag = true ;
for(var k=0;k<list.length;k++){
if(cList[k] != list[k]){
flag = false ;
}
}
if(flag){
checkes[i].checked = isChecked ;
}
}else if(cList.length < list.length){
var flag = true ;
for(var k=0;k<cList.length;k++){
if(cList[k] != list[k]){
flag = false ;
}
}
if(flag){
checkes[i].checked = isChecked ;
}
}
}
}
}
</script>
</body>
</html>
function doit(){
var obj = event.srcElement;
var td = obj.parentNode.parentNode.children[0];
var num = td.innerText;
var a = document.getElementsByTagName("input");
if(num=='编 号'){
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
a[i].checked = obj.checked;
}
}
}else{
num = num.replace(/\s/g,"");
var re = /\d+/g;
if(re.test(num)){
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
var td1 = a[i].parentNode.parentNode.children[0];
var num1 = td1.innerText;
num1 = num1.replace(/\s/g,"");
var r = new RegExp("^" + num + "\\..+","g");
if(r.test(num1)){
a[i].checked = obj.checked;
}
var r1 = new RegExp("^" + num1 + "\\..+","g");
if(r1.test(num)){
a[i].checked = obj.checked;
}
}
}
}
}
}window.onload=function(){
var a =document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox") {a[i].onclick = doit;}
}
}
</script>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>
编 号</td>
<td>
内 容 </td>
<td>
<input id="Checkbox1" type="checkbox" />全选</td>
</tr>
<tr>
<td>
1</td>
<td>
1.当此节点被选中后,其下的子节点都被选中,<br />
2.当以1开头的子节点有一个被选中时,1节点都被选中<br />
3.以1开头的子节点可以自由被选中或是取消。</td>
<td>
<input id="Checkbox2" type="checkbox" /></td>
</tr>
<tr>
<td>
1.1</td>
<td>
</td>
<td>
<input id="Checkbox3" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2</td>
<td>
</td>
<td>
<input id="Checkbox4" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1</td>
<td>
注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
原因</td>
<td>
<input id="Checkbox5" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1.1</td>
<td>
</td>
<td>
<input id="Checkbox6" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3</td>
<td>
</td>
<td>
<input id="Checkbox7" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3.1</td>
<td>
</td>
<td>
<input id="Checkbox8" type="checkbox" /></td>
</tr>
<tr>
<td>
1.4</td>
<td>
</td>
<td>
<input id="Checkbox9" type="checkbox" /></td>
</tr>
<tr>
<td>
2</td>
<td>
</td>
<td>
<input id="Checkbox10" type="checkbox" /></td>
</tr>
<tr>
<td>
2.1</td>
<td>
</td>
<td>
<input id="Checkbox11" type="checkbox" /></td>
</tr>
<tr>
<td>
3</td>
<td>
</td>
<td>
<input id="Checkbox12" type="checkbox" /></td>
</tr>
<tr>
<td>
3.1</td>
<td>
</td>
<td>
<input id="Checkbox13" type="checkbox" /></td>
</tr>
<tr>
<td>
10</td>
<td>
</td>
<td>
<input id="Checkbox14" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1</td>
<td>
</td>
<td>
<input id="Checkbox15" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.1</td>
<td>
</td>
<td>
<input id="Checkbox16" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.2</td>
<td>
</td>
<td>
<input id="Checkbox17" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.3</td>
<td>
</td>
<td>
<input id="Checkbox18" type="checkbox" /></td>
</tr>
<tr>
<td>
10.2</td>
<td>
</td>
<td>
<input id="Checkbox19" type="checkbox" /></td>
</tr>
<tr>
<td>
11</td>
<td>
</td>
<td>
<input id="Checkbox20" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1</td>
<td>
</td>
<td>
<input id="Checkbox21" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.1</td>
<td>
</td>
<td>
<input id="Checkbox22" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.2</td>
<td>
</td>
<td>
<input id="Checkbox23" type="checkbox" /></td>
</tr>
</table>
<script>
function doit(){
var obj = event.srcElement;
var td = obj.parentNode.parentNode.children[0];
var num = td.innerText;
var a = document.getElementsByTagName("input");
if(num=='编 号'){
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
a[i].checked = obj.checked;
}
}
}else{
var re = /\d+/g;
if(re.test(num)){
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
var td1 = a[i].parentNode.parentNode.children[0];
var num1 = td1.innerText;
var list = num.split(".") ;
var cList = num1.split(".") ;
if(cList.length > list.length){
var flag = true ;
for(var k=0;k<list.length;k++){
if(cList[k] != list[k]){
flag = false ;
}
}
if(flag){
a[i].checked = obj.checked ;
}
}
}
}
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
var td1 = a[i].parentNode.parentNode.children[0];
var num1 = td1.innerText;
var list = num.split(".") ;
var cList = num1.split(".") ;
if(cList.length < list.length){
var flag = true ;
for(var k=0;k<cList.length;k++){
if(cList[k] != list[k]){
flag = false ;
}
}
if(flag){
if(isChildAllChecked(a[i])){
a[i].checked = true ;
}else if(!isChildChecked(a[i])){
a[i].checked = obj.checked ;
}
}
}
}
}
}
}
}
function isChildAllChecked(obj){
var isChecked = true ;
var td = obj.parentNode.parentNode.children[0];
var num = td.innerText;
var a = document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
var td1 = a[i].parentNode.parentNode.children[0];
var num1 = td1.innerText;
var list = num.split(".") ;
var cList = num1.split(".") ;
if(cList.length > list.length){
var flag = true ;
for(var k=0;k<list.length;k++){
if(cList[k] != list[k]){
flag = false ;
}
}
if(flag){
if(!a[i].checked){
isChecked = false ;
}
}
}
}
}
return isChecked ;
}
function isChildChecked(obj){
var isChecked = false ;
var td = obj.parentNode.parentNode.children[0];
var num = td.innerText;
var a = document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
var td1 = a[i].parentNode.parentNode.children[0];
var num1 = td1.innerText;
var list = num.split(".") ;
var cList = num1.split(".") ;
if(cList.length > list.length){
var flag = true ;
for(var k=0;k<list.length;k++){
if(cList[k] != list[k]){
flag = false ;
}
}
if(flag){
if(a[i].checked){
isChecked = true ;
}
}
}
}
}
return isChecked ;
}
window.onload=function(){
var a =document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox") {a[i].onclick = doit;}
}
}
</script>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>
编 号</td>
<td>
内 容 </td>
<td>
<input id="Checkbox1" type="checkbox" />全选</td>
</tr>
<tr>
<td>
1</td>
<td>
1.当此节点被选中后,其下的子节点都被选中,<br />
2.当以1开头的子节点有一个被选中时,1节点都被选中<br />
3.以1开头的子节点可以自由被选中或是取消。</td>
<td>
<input id="Checkbox2" type="checkbox" /></td>
</tr>
<tr>
<td>
1.1</td>
<td>
</td>
<td>
<input id="Checkbox3" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2</td>
<td>
</td>
<td>
<input id="Checkbox4" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1</td>
<td>
注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
原因</td>
<td>
<input id="Checkbox5" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1.1</td>
<td>
</td>
<td>
<input id="Checkbox6" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3</td>
<td>
</td>
<td>
<input id="Checkbox7" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3.1</td>
<td>
</td>
<td>
<input id="Checkbox8" type="checkbox" /></td>
</tr>
<tr>
<td>
1.4</td>
<td>
</td>
<td>
<input id="Checkbox9" type="checkbox" /></td>
</tr>
<tr>
<td>
2</td>
<td>
</td>
<td>
<input id="Checkbox10" type="checkbox" /></td>
</tr>
<tr>
<td>
2.1</td>
<td>
</td>
<td>
<input id="Checkbox11" type="checkbox" /></td>
</tr>
<tr>
<td>
3</td>
<td>
</td>
<td>
<input id="Checkbox12" type="checkbox" /></td>
</tr>
<tr>
<td>
3.1</td>
<td>
</td>
<td>
<input id="Checkbox13" type="checkbox" /></td>
</tr>
<tr>
<td>
10</td>
<td>
</td>
<td>
<input id="Checkbox14" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1</td>
<td>
</td>
<td>
<input id="Checkbox15" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.1</td>
<td>
</td>
<td>
<input id="Checkbox16" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.2</td>
<td>
</td>
<td>
<input id="Checkbox17" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.3</td>
<td>
</td>
<td>
<input id="Checkbox18" type="checkbox" /></td>
</tr>
<tr>
<td>
10.2</td>
<td>
</td>
<td>
<input id="Checkbox19" type="checkbox" /></td>
</tr>
<tr>
<td>
11</td>
<td>
</td>
<td>
<input id="Checkbox20" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1</td>
<td>
</td>
<td>
<input id="Checkbox21" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.1</td>
<td>
</td>
<td>
<input id="Checkbox22" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.2</td>
<td>
</td>
<td>
<input id="Checkbox23" type="checkbox" /></td>
</tr>
</table>
<script>
function doit(){
var obj = event.srcElement;
var td = obj.parentNode.parentNode.children[0];
var num = td.innerText;
num = num.replace(/\s/g,"");
var re = /^\d+$/g;
var a =document.getElementsByTagName("input"); if(re.test(num)){
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
var td1 = a[i].parentNode.parentNode.children[0];
var num1 = td1.innerText;
num1 = num1.replace(/\s/g,"");
var r = new RegExp("^" + num + "\\..+","g");
if(r.test(num1)) a[i].checked = obj.checked;
}
}
}
else{
var b = num.split(".");
if(b.length==1) return;
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
var td1 = a[i].parentNode.parentNode.children[0];
var num1 = td1.innerText;
num1 = num1.replace(/\s/g,"");
if(num1==b[0]) if(obj.checked) a[i].checked=true;
}
}
}
}window.onload=function(){
var a =document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox") {a[i].onclick = doit;}
}
}
</script>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>
编 号</td>
<td>
内 容 </td>
<td>
<input id="Checkbox1" type="checkbox" />全选</td>
</tr>
<tr>
<td>
1</td>
<td>
1.当此节点被选中后,其下的子节点都被选中,<br />
2.当以1开头的子节点有一个被选中时,1节点都被选中<br />
3.以1开头的子节点可以自由被选中或是取消。</td>
<td>
<input id="Checkbox2" type="checkbox" /></td>
</tr>
<tr>
<td>
1.1</td>
<td>
</td>
<td>
<input id="Checkbox3" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2</td>
<td>
</td>
<td>
<input id="Checkbox4" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1</td>
<td>
注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
原因</td>
<td>
<input id="Checkbox5" type="checkbox" /></td>
</tr>
<tr>
<td>
1.2.1.1</td>
<td>
</td>
<td>
<input id="Checkbox6" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3</td>
<td>
</td>
<td>
<input id="Checkbox7" type="checkbox" /></td>
</tr>
<tr>
<td>
1.3.1</td>
<td>
</td>
<td>
<input id="Checkbox8" type="checkbox" /></td>
</tr>
<tr>
<td>
1.4</td>
<td>
</td>
<td>
<input id="Checkbox9" type="checkbox" /></td>
</tr>
<tr>
<td>
2</td>
<td>
</td>
<td>
<input id="Checkbox10" type="checkbox" /></td>
</tr>
<tr>
<td>
2.1</td>
<td>
</td>
<td>
<input id="Checkbox11" type="checkbox" /></td>
</tr>
<tr>
<td>
3</td>
<td>
</td>
<td>
<input id="Checkbox12" type="checkbox" /></td>
</tr>
<tr>
<td>
3.1</td>
<td>
</td>
<td>
<input id="Checkbox13" type="checkbox" /></td>
</tr>
<tr>
<td>
10</td>
<td>
</td>
<td>
<input id="Checkbox14" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1</td>
<td>
</td>
<td>
<input id="Checkbox15" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.1</td>
<td>
</td>
<td>
<input id="Checkbox16" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.2</td>
<td>
</td>
<td>
<input id="Checkbox17" type="checkbox" /></td>
</tr>
<tr>
<td>
10.1.3</td>
<td>
</td>
<td>
<input id="Checkbox18" type="checkbox" /></td>
</tr>
<tr>
<td>
10.2</td>
<td>
</td>
<td>
<input id="Checkbox19" type="checkbox" /></td>
</tr>
<tr>
<td>
11</td>
<td>
</td>
<td>
<input id="Checkbox20" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1</td>
<td>
</td>
<td>
<input id="Checkbox21" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.1</td>
<td>
</td>
<td>
<input id="Checkbox22" type="checkbox" /></td>
</tr>
<tr>
<td>
11.1.2</td>
<td>
</td>
<td>
<input id="Checkbox23" type="checkbox" /></td>
</tr>
</table>