javascript如何取得某一table的某一行的某一列的某一控件的值或属性

解决方案 »

  1.   

    <asp:datagrid id="dg1" runat="server" AutoGenerateColumns="False"><Columns>
            <asp:TemplateColumn HeaderText="选择">
                <ItemTemplate>
                         <asp:CheckBox Runat="server" ID="CheckBox1" name="CheckBox1" />
       </ItemTemplate>
           </asp:TemplateColumn>       <asp:BoundColumn DataField="nameid" HeaderText="ID"></asp:BoundColumn>

    </Columns>
    </asp:datagrid>
      

  2.   

    可以用DOM樹的方式取得或改變。
      

  3.   

    var tbl = document.getElementById("dg1");
    var row = tbl.rows[n];
    var cell = row.cells[m];
    var inputs = cell.all.tags("INPUT");
    if (inputs.length > 0 && inputs[0].type=="checkbox")
    {
     alert(inputs[0].checked);
    }
      

  4.   

    var inputs = cell.all.tags("INPUT");
    if (inputs.length > 0 && inputs[0].type=="checkbox")
    {
     alert(inputs[0].checked);
    }?????????????????????我现在需要取得复选框选中的单元格右边那个单元格的值???思归老大帮忙解决一下
      

  5.   

    var tbl = document.getElementById("dg1");
    var row = tbl.rows[n];
    var cell = row.cells[m];
    var inputs = cell.all.tags("INPUT");
    if (inputs.length > 0 && inputs[0].type=="checkbox")
    {
     if(inputs[0].checked)
     {
          alert(row.cells[m+1].innerHTML);
     }
    }or
    var tbl = document.getElementById("dg1");
    var row = tbl.rows[n];
    var inputs = row.all.tags("INPUT");
    if (inputs.length > 0 && inputs[0].type=="checkbox")
    {
     if(inputs[0].checked)
     {
          var p = inputs[0].parentElement;
          while (p != null && p.tagName != "TD")
     p = p.parentElement;      if (p!=null && p.tagName == "TD")
          {
    alert(row.cells[p.cellIndex+1].innerHTML);
          }
     }
    }
      

  6.   

    当然,还可以通过childNode的方式来获取var table = document.all.<%= dg1.ClientID %>;var row = table.rows(i);//某行var td = row.cells(j);//某列var cb = td.childNodes(0);if(cb.checked)
    {}...............
      

  7.   

    说明一下,这个var td = row.cells(j);//某列
    是你在页面上看到的第几列,索引从0开始
    就是说,不要考虑你的grid里面的隐藏列,这些是在页面上不出现的
    另外,这个childNodes(0)就是这个单元格里面的第1个控件
    如果不幸没有找到
    要检查你的html,看看这个控件是否的确是这个单元格里面的第一个子节点因为有的时候vs.net会自己生成那个<Font></Font> :)
      

  8.   

    遍历如下:var table = document.all.<%= dg1.ClientID %>;for(var i = 1; i < table.length ; i ++)
    {
        table.rows(i).cells(4).childNodes(0).checked....
    }