2010-05-17 52 views

回答

7
$('#table tbody tr input[type=radio]').each(function(){ 
alert($(this).attr('checked')); 
}); 

HTH。

+3

'#table> tr'会窒息某些浏览器(铬/火狐),像给自己加'tbody'元素,而'#table tr'不会。 – karim79 2010-05-17 19:26:15

+0

@ karim79 - 修改 – Sunny 2010-05-17 19:29:04

+0

您也可以使用':radio'选择器(http://api.jquery.com/radio-selector/) – Mottie 2010-05-18 00:13:00

3

你要处理的每个单选按钮或者你只需​​要检查的呢?如果是后者,那是相当容易:

$('table input:radio:checked') 

参考::radio:checked

+0

+1。 Afaik jQuery的查询从右到左,所以如果唯一的条件是它们需要在表中,那么整个'the tr tr td'是不必要的。在这种情况下':radio'和':checked'是最“优雅”的选择器。 – Alec 2010-05-18 01:31:33

1
$("table tr input[type=radio]:checked"); 
4

有很多方法可以做到这一点,例如,使用.each.is遍历方法:

$("table tbody tr td input[name=something]:radio").each(function() { 
    if($(this).is(":checked")) { 
     $(this).closest("tr").css("border", "1px solid red"); 
    } else { 
     // do something else 
    } 
}); 
+0

如果你能告诉我是否可以很好地保证所有(支持jQuery的)浏览器都能可靠地插入缺少的'',我会给+1。 – user113716 2010-05-17 19:40:14

+1

@patrick - 不,情况并非如此。这意味着我的选择器在某些时候会被打破。这意味着我现在编辑这个答案。该死的,但谢谢,我应该在未来更多关注我自己的答案:) – karim79 2010-05-17 19:44:23

+0

感谢您的回应。 +1为更正的答案。 – user113716 2010-05-17 19:54:41

1
//get the checked radio input, put more specificity in the selector if needed 
var $checkedRadio = $("input[type=radio]:checked"); 

//if you want the value of the checked radio... 
var checkedRadioVal = $checkedRadio.val(); 
3

要遍历所有的无线电检查单选按钮,你也可以这样做:

$('input:radio:checked').each(function() { 
    //this loops through all checked radio buttons 
    //you can use the radio button using $(this) 
}); 
+0

适合我的完美解决方案。谢谢 :) – 2017-05-31 12:08:05

相关问题