各位大侠:
我现在在jsp中有一个table,其中table第一列是checkbox,当我提交时,我想在javascript中判断,这个table中哪几行选中,请问如何判断?
我现在写的代码是:
        var oTable = document.getElementById(tableid);
var oTBody = oTable.tBodies[0];
var colDataRows = oTBody.rows;
        for (var i = 0; i < colDataRows.length; i++)
             if (colDataRows[i].cells[0].checked == true)
但是提示没有这个属性,请各位帮忙。

解决方案 »

  1.   

    if (colDataRows[i].cells[0].document.getElementsByTagName("input")[0].checked == true)colDataRows[i].cells[0]只是第一个单元格,不是checkbox
    也可以通过childNodes找
      

  2.   

    你写错了。正确代码 应该为:
    var oTable = document.getElementById(tableid);
    var colDataRows = oTable.rows;
      for (var i = 0; i < colDataRows.length; i++)
      if (colDataRows[i].cells[0].checked == true)
      

  3.   


    不行啊,这样取得的值都是本页面中第一个"input"的标签,不是在table范围内的
      

  4.   

    var oTBody = oTable.tBodies[0];  这是什么???
      

  5.   


    如何把colDataRows[i].cells[0]转化为一个input对象呢
      

  6.   

    你不是jsp循环生成的表格么?设计好html简便了<table id='tbl'>
    <tr><td><input type='checkbox' name='chk[]' id='chk_0'/></td><td>1</td></tr>
    <tr><td><input type='checkbox' name='chk[]' id='chk_1'/></td><td>2</td></tr>
    <tr><td><input type='checkbox' name='chk[]' id='chk_2'/></td><td>3</td></tr>
    <tr><td><input type='checkbox' name='chk[]' id='chk_3'/></td><td>4</td></tr>
    <tr><td><input type='checkbox' name='chk[]' id='chk_4'/></td><td>5</td></tr>
    <table><input type='button' value="Rows checked" onclick="rc()"/><script type="text/javascript">
    function $n(n){return document.getElementsByName(n);}
    function rc()
    {
    var obj = $n('chk[]'),rs = [];
    for(var i=0,j=obj.length;i<j;i++)
    {
    if(obj[i].checked) rs[rs.length] = obj[i].id.split('_')[1];
    }
    alert('You have selected rows : '+rs.join(','));
    }
    </script>
      

  7.   


       <script type="text/javascript">
      function check1(){
         var table1=document.getElementById("a");
     var trs=table1.rows.length;
     for(var i=1;i<=trs;i++){
        var tdObj=table1.rows[i-1].cells[0];
    if(tdObj.childNodes[0].checked){
       alert("你选择了第"+i+"个");
    }
     }
      }
    </script>
    </head><body>
      <table id="a">
         <tr>
        <td><input type="checkbox" value="1" name="game" /> </td>
     </tr>
     <tr>
        <td><input type="checkbox" value="1" name="game" /> </td>
     </tr>
     <tr>
        <td><input type="checkbox" value="1" name="game" /> </td>
     </tr>
      </table>
      <input type="button" onclick="check1()" />
    </body>经过测试了可以用,主要是要通过childNodes[0]获得该td
      

  8.   

    最好的方法是用getElementsByName !这才是兼容所有浏览器的写法!也是最高效的!
    如果用 document.getElementsByTagName 要多判断 type==checkbox
    <table id='tbl'>
    <tr><td><input type='checkbox' name='chkSelect' dataId='1' id='chk_0'/></td><td>1</td></tr>
    <tr><td><input type='checkbox' name='chkSelect' dataId='2' id='chk_1'/></td><td>2</td></tr>
    <tr><td><input type='checkbox' name='chkSelect' dataId='3' id='chk_2'/></td><td>3</td></tr>
    <tr><td><input type='checkbox' name='chkSelect' dataId='4' id='chk_3'/></td><td>4</td></tr>
    <tr><td><input type='checkbox' name='chkSelect' dataId='5' id='chk_4'/></td><td>5</td></tr>
    <table>
    var chkList = document.getElementsByName("chkSelect");
    var arr=[];
    for(var chk in chkList ){
    if(chk.checked){chk.push(chk.getAttribute("dataId"));} // dataId 自定义属性,表示服务器端要操作的唯一标识
    }alert("你选中了:"+arr.join(','));
      

  9.   

    var oTable = document.getElementById(tableid);
    var colDataRows = oTable.rows;
      for (var i = 0; i < colDataRows.length; i++)
      if (colDataRows[i].cells[0].all[0].checked == true)
    上面写错了。应该取单元格里面的第几个控件
      

  10.   

    colDataRows[i].cells[0].document.getElementsByTagName("input")[0].checked这个 或都
    colDataRows[i].cells[0].firstChild.checked
      

  11.   

    一个例子:<script src="JS/jquery-1.4.2.js" type="text/javascript"></script>
        <script type="text/javascript">
            var top = 0;        var choiceValue;
            $(function() {
     $("input#Submit").click(function() {
                    choiceValue = new Array();
                    $(this).prev().find("input:checked").each(function() {
                        choiceValue.push($(this).parent().next().html());
                    });
                    alert(choiceValue.valueOf());
                });
            });
        </script>
    <div>
        <table>
        <tbody>
        <tr>
        <td><input type="checkbox" /></td>
         <td>1</td>
        </tr>
        
          <tr>
        <td><input type="checkbox" /></td>
           <td>2</td>
        </tr>
        
          <tr>
        <td><input type="checkbox" /></td>
        <td>3</td>
        </tr>
        </tbody>
        </table>
        <input type="button" value="Submit" id="Submit"  />
        </div>