代码如下:<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>
                &nbsp;</td>
            <td>
                <input id="Checkbox3" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                1.2</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox4" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                1.2.1</td>
            <td>
                注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
&nbsp;被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
                原因</td>
            <td>
                <input id="Checkbox5" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                1.2.1.1</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox6" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                1.3</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox7" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                1.3.1</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox8" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                1.4</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox9" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                2</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox10" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                2.1</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox11" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                3</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox12" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                3.1</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox13" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                10</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox14" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                10.1</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox15" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                10.1.1</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox16" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                10.1.2</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox17" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                10.1.3</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox18" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                10.2</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox19" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                11</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox20" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                11.1</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox21" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                11.1.1</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox22" type="checkbox" /></td>
        </tr>
        <tr>
            <td>
                11.1.2</td>
            <td>
                &nbsp;</td>
            <td>
                <input id="Checkbox23" type="checkbox" /></td>
        </tr>
    </table>

解决方案 »

  1.   


    <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>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox3" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox4" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1</td>
                <td>
                    注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
    &nbsp;被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
                    原因</td>
                <td>
                    <input id="Checkbox5" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox6" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox7" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox8" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.4</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox9" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox10" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox11" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox12" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox13" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox14" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox15" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox16" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox17" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox18" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox19" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox20" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox21" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox22" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox23" type="checkbox" /></td>
            </tr>
        </table>
      

  2.   


    <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>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox3" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox4" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1</td>
                <td>
                    注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
    &nbsp;被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
                    原因</td>
                <td>
                    <input id="Checkbox5" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox6" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox7" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox8" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.4</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox9" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox10" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox11" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox12" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox13" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox14" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox15" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox16" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox17" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox18" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox19" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox20" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox21" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox22" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox23" type="checkbox" /></td>
            </tr>
        </table>
    </body>
    </html>
      

  3.   


    <!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>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox3" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.1" /></td>
            </tr>
            <tr>
                <td>
                    1.2</td>
                <td>
                    &nbsp;</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 />
    &nbsp;被选中或是跟着取消 这也是我为什么罗列了那么多数据的<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>
                    &nbsp;</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>
                    &nbsp;</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>
                    &nbsp;</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>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox9" type="checkbox" name="checkbox" onclick="choice(this.id)" value="1.4" /></td>
            </tr>
            <tr>
                <td>
                    2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox10" type="checkbox" name="checkbox" onclick="choice(this.id)" value="2" /></td>
            </tr>
            <tr>
                <td>
                    2.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox11" type="checkbox" name="checkbox" onclick="choice(this.id)" value="2.1" /></td>
            </tr>
            <tr>
                <td>
                    3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox12" type="checkbox" name="checkbox" onclick="choice(this.id)" value="3" /></td>
            </tr>
            <tr>
                <td>
                    3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox13" type="checkbox" name="checkbox" onclick="choice(this.id)" value="3.1" /></td>
            </tr>
            <tr>
                <td>
                    10</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox14" type="checkbox" name="checkbox" onclick="choice(this.id)" value="10" /></td>
            </tr>
            <tr>
                <td>
                    10.1</td>
                <td>
                    &nbsp;</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>
                    &nbsp;</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>
                    &nbsp;</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>
                    &nbsp;</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>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox19" type="checkbox" name="checkbox" onclick="choice(this.id)" value="10.2" /></td>
            </tr>
            <tr>
                <td>
                    11</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox20" type="checkbox" name="checkbox" onclick="choice(this.id)" value="11" /></td>
            </tr>
            <tr>
                <td>
                    11.1</td>
                <td>
                    &nbsp;</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>
                    &nbsp;</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>
                    &nbsp;</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>
      

  4.   

    如果借用3楼的写法<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{
          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>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox3" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox4" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1</td>
                <td>
                    注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
    &nbsp;被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
                    原因</td>
                <td>
                    <input id="Checkbox5" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox6" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox7" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox8" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.4</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox9" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox10" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox11" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox12" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox13" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox14" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox15" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox16" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox17" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox18" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox19" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox20" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox21" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox22" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox23" type="checkbox" /></td>
            </tr>
        </table>
      

  5.   


    <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>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox3" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox4" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1</td>
                <td>
                    注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
    &nbsp;被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
                    原因</td>
                <td>
                    <input id="Checkbox5" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox6" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox7" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox8" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.4</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox9" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox10" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox11" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox12" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox13" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox14" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox15" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox16" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox17" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox18" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox19" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox20" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox21" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox22" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox23" type="checkbox" /></td>
            </tr>
        </table>
      

  6.   

    如果可以给 checkbox 设置 value 最好 设置一下,比我上面这样弄好多了
      

  7.   


    <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>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox3" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox4" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1</td>
                <td>
                    注意事项:当1或子节点被选中时,当心10以下的节点也会<br />
    &nbsp;被选中或是跟着取消 这也是我为什么罗列了那么多数据的<br />
                    原因</td>
                <td>
                    <input id="Checkbox5" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.2.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox6" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox7" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox8" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    1.4</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox9" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox10" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    2.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox11" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox12" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    3.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox13" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox14" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox15" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox16" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox17" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.1.3</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox18" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    10.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox19" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox20" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox21" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.1</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox22" type="checkbox" /></td>
            </tr>
            <tr>
                <td>
                    11.1.2</td>
                <td>
                    &nbsp;</td>
                <td>
                    <input id="Checkbox23" type="checkbox" /></td>
            </tr>
        </table>