对javascript不熟,想实现一个想必对大家来讲很初浅的问题:如何在在选中了“全选”的checkbox后,表格内的checkbox都自动选上。换句话说,我就是不知道怎么得到这个rows[i]内的那个checkbox。
================
function doSelectAll(obj)
{
var mBody = document.getElementById("DataGrid_log");
if(obj.checked)
{
for(i=1;i<mBody.rows.length;i++)
{
mBody.rows[i].style.backgroundColor = "#222222";(全部变背景色)
?????(这里如何写,要求实现每一行中位于第4列内的一个checkbox被选中)
}

}
else
{
for(j=1;j<mBody.rows.length;j++)
{
mBody.rows[j].style.backgroundColor = "#404040";
                           ???????[每行的checkbox都不被选中]
}
}
}
========================
另外,想请问大家,有没有类似.net那样的java的开发环境啊,比如我打个.它的类啊、属性啊就自动全出来了。谢谢!

解决方案 »

  1.   

    var mBody = document.getElementById("DataGrid_log");
    ---->
    var mBody = document.getElementsByName("DataGrid_log");
     byId 总是只返回第一个.
      

  2.   

    http://www.blindprogramming.com/ftp/internet/CoreReferenceJS14.zip
    http://www.blindprogramming.com/ftp/internet/ClientReferenceJS13.zip
    http://www.blindprogramming.com/ftp/internet/ClientGuideJS13.zip
    http://doc.rz.ifi.lmu.de/web/js/CoreReferenceJS15/CoreReferenceJS15.zip
    http://doc.rz.ifi.lmu.de/web/js/CoreGuideJS15/CoreGuideJS15.zip
    http://www.hubert.idv.tw/issue/javascript/ref/CoreReferenceJS14.pdf
    http://janroman.net.dhis.org/pdf/CoreGuideJS14.pdf
    http://janroman.net.dhis.org/pdf/ClientReferenceJS13.pdf
    http://janroman.net.dhis.org/pdf/ClientGuideJS13.pdf
    http://www.w3.org/TR/2002/WD-DOM-Level-3-LS-20020725/DOM3-LS.pdf
    http://www.mozilla.org/js/language/E262-3.pdf
    http://www.blindprogramming.com/ftp/internet/CoreGuideJS14.zip
      

  3.   

    每个checkbox的id不要弄成一样的
    <input id="c1" type="checkbox" name="C1" value="ON">
    <input id="c2" type="checkbox" name="C2" value="ON">然后在javascript里面
    var m1 = document.getElementById("c1");
    m1.checked="true";
    var m2 = document.getElementById("c2");
    m2.checked="true";
      

  4.   

    humanity(总是偷窥 Java & XML) :
    var mBody = document.getElementById("DataGrid_log");
    ---->
    var mBody = document.getElementsByName("DataGrid_log");
     byId 总是只返回第一个.==========================
    先谢谢一下,不过这里DataGrid_log是DataGrid啊,本来就只有一个啊?我要选中的checkBox是在该DataGrid内的每一行的某列里面的。****************************************
    回复人: masse(当午) :
    难道不能用循环实现吗?比如变色的那句:mBody.rows[i].style.backgroundColor = "#222222";****************************************
    先谢,我试试再说~~
      

  5.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 1</title>
    </head><body><form method="POST" action="--WEBBOT-SELF--">
      <!--webbot bot="SaveResults"
      U-File="C:\Documents and Settings\xukf.RD\桌面\_private\form_results.txt"
      S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
      <p><input id="c1" type="checkbox" name="C1" value="ON"></p>
      <p><input id="c2" type="checkbox" name="C2" value="ON"></p>
      <p><input id="c3" type="checkbox" name="C3" value="ON"></p>
      <p><input id="c4" type="checkbox" name="C4" value="ON" onclick="func()"></p>
      <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
    </form>
    <script type='text/javascript'>
    function func(){
    var i=1;
    while(true){
    var body = document.getElementById("c"+i);
    if(body==null) break;
    body.checked=true;
    i++;
    }
    }
    </script>
    </body></html>
      

  6.   

    上面的就是循环,点击第四个checkbox可以看到效果
      

  7.   

    当你的html控件名称一样时,那么它们就是一个数组
    你可以循环遍历这个数组,然后将他们设为选中状态。
    我现在没时间,一会给你把 代码贴上来。
      

  8.   

    谢谢当午兄弟,不过有个问题,你的代码我倒是明了了,但我是asp.net的程序,是个DataGrid,也就是说,里面的每一行都是动态的,是绑定出来的,所以没有 
    <p><input id="c1" type="checkbox" name="C1" value="ON"></p>
    <p><input id="c2" type="checkbox" name="C2" value="ON"></p>
    <p><input id="c3" type="checkbox" name="C3" value="ON"></p>
    <p><input id="c4" type="checkbox" name="C4" value="ON" onclick="func()"></p>
    <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
    不过你还是给了我提示,就是采用getElementById("c"+i),我再试试,因为web控件在产生前置代码后,其实还是有ClientID的。我再试试啊~~谢谢
      

  9.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 1</title>
    </head><body><form method="POST" action="--WEBBOT-SELF--">
      <!--webbot bot="SaveResults"
      U-File="C:\Documents and Settings\xukf.RD\桌面\_private\form_results.txt"
      S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
      <p><input id="c1" type="checkbox" name="C" value="ON"></p>
      <p><input id="c2" type="checkbox" name="C" value="ON"></p>
      <p><input id="c3" type="checkbox" name="C" value="ON"></p>
      <p><input id="c4" type="checkbox" name="C" value="ON" onclick="func()"></p>
      <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
    </form>
    <script type='text/javascript'>
    function func(){
                 if (document.all) {

    for (var i = 0; i < )
    var body = document.getElementById("c"+i);
    if(body==null) break;
    body.checked=true;
    i++;
    }
                 }
    }
    </script>
    </body></html>
      

  10.   

    html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 1</title>
    </head><body><form method="POST" action="--WEBBOT-SELF--">
      <!--webbot bot="SaveResults"
      U-File="C:\Documents and Settings\xukf.RD\?面\_private\form_results.txt"
      S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
      <p><input id="c1" type="checkbox" name="C" value="ON"></p>
      <p><input id="c2" type="checkbox" name="C" value="ON"></p>
      <p><input id="c3" type="checkbox" name="C" value="ON"></p>
      <p><input id="c4" type="checkbox" name="C" value="ON" onclick="func()"></p>
      <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
    </form>
    <script type='text/javascript'>
    function func(){
         if (document.all) {
              var objs = document.getElementByName();
              if (objs.length) {
                  for (var i = 0; i < objs.length; i ++ )
         objs[i].checked = true;
                  }
              } else {
                objs.checked = true;
              }
            }
    }
    </script>
    </body></html>
      

  11.   

    回 masse(当午) 兄,果然实现了,刚刚我漏了一个反},所以耽误了点时间,十分感谢,这就发分。
      

  12.   

    再问个小问题:能不能通过mBody.rows[i](.cells......)这样的方式得到该CheckBox呢?
    因为在我的代码中,都已经循环到行了,我又知道它在第4列,觉得应该有方法不必去整个document.getElementByID的吧。
      

  13.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
      function checkall(){
       var huang = document.all['huang'];
       for(i = 0;i < huang.length;i++){
         huang[i].checked = true;
       }
      }
      function centerall(){
       var huang = document.all['huang'];
       for(i = 0;i < huang.length;i++){
         huang[i].checked = false;
       }
      }
    //-->
    </SCRIPT>
    <BODY>
     <input type="checkbox" name="huang" value="ON">
     <input type="checkbox" name="huang" value="OFF">
     <br>
     <input type="button" value = "checkall" onclick = "checkall();">
     <input type="button" value = "centerall" onclick = "centerall();">
    </BODY>
    </HTML>