通过Row-Javascript获取单选按钮

通过Row-Javascript获取单选按钮,javascript,Javascript,我必须一行一行地获取radiobuttons,但是这个查询会获取表中的所有收音机 function Check() { var table = document.getElementById("tblMain"); for (var i = 0, row; row = table.rows[i]; i++) { var arrRadios = new Array(); arrRadios = this.document.getElementsByName("radio"); var len =

我必须一行一行地获取radiobuttons,但是这个查询会获取表中的所有收音机

function Check() {
var table = document.getElementById("tblMain");
for (var i = 0, row; row = table.rows[i]; i++) {
var arrRadios = new Array();
arrRadios = this.document.getElementsByName("radio");
var len = arrRadios.length; //it gives 6 here, when I want 3
}
}

<table id="tblMain">
        <tr>
            <td>
                <input type="radio" name="radio" />1)
                <input type="radio" name="radio" />2)
                <input type="radio" name="radio" />3)                
            </td>            
        </tr>
        <tr>
            <td>
                <input type="radio" name="radio" />1)
                <input type="radio" name="radio" />2)
                <input type="radio" name="radio" />3)                
            </td>            
        </tr>
    <asp:Button ID="btn" runat="server" 
      OnClientClick="return Check()" value="click"/>        
    </table>
函数检查(){
var table=document.getElementById(“tblMain”);
for(变量i=0,行;行=表。行[i];i++){
var arrroids=新阵列();
arrroids=this.document.getElementsByName(“radio”);
var len=arrroids.length;//当我想要3时,这里给出6
}
}
1)
2)
3)                
1)
2)
3)                
请通过Javascript建议解决方案为什么不这样做:

  var table = document.getElementById("tblMain");
  for (var i = 0, row; row = table.rows[i]; i++) {
      var arrRadios = new Array();
      arrRadios = document.querySelectorAll('#tblMain tr:nth-child(' + (i+1) + ') input[type=radio]');
      var len = arrRadios.length; 
  }

如果您的浏览器不是一个合理的最新版本,这可能不起作用。

尽管有不同的解决方案。这是一个接近你所开始的

function Check() {
var table = document.getElementById("tblMain");
for (var i = 0, row; row = table.rows[i]; i++) {
var arrRadios = new Array();
arrRadios = this.document.getElementsByName("radio_"+i);
var len = arrRadios.length; //it gives 6 here, when I want 3
}
}

<table id="tblMain">
        <tr>
            <td>
                <input type="radio" name="radio_0" />1)
                <input type="radio" name="radio_0" />2)
                <input type="radio" name="radio_0" />3)                
            </td>            
        </tr>
        <tr>
            <td>
                <input type="radio" name="radio_1" />1)
                <input type="radio" name="radio_1" />2)
                <input type="radio" name="radio_1" />3)                
            </td>            
        </tr>
    <asp:Button ID="btn" runat="server" 
      OnClientClick="return Check()" value="click"/>        
    </table>
函数检查(){
var table=document.getElementById(“tblMain”);
for(变量i=0,行;行=表。行[i];i++){
var arrroids=新阵列();
arrroids=this.document.getElementsByName(“radio_u2;”+i);
var len=arrroids.length;//当我想要3时,这里给出6
}
}
1)
2)
3)                
1)
2)
3)                
有两个更改:通过添加行数重命名收音机
然后,我将为您的循环添加相同的内容,以呼叫该行的收音机。

谢谢。这是可行的,但在我的例子中,这些行是动态的,在创建它们时不能命名为35;。