2011-07-29 100 views
1

我有rabioboxs一个<div>得到对象:如何从每个功能

<div id='RB-01'> 
<span>Item_1</span><input type='radio' name='RB01' value='1'><br /> 
<span>Item_2</span><input type='radio' name='RB01' value='2'><br /> 
<span>Item_3</span><input type='radio' name='RB01' value='3'><br /> 
</div> 

然后使用jQuery我想这是查了radiobox:

var obj = null; 
var tempId = "RB-01"; 
if ($('div[id=' + tempId + ']')) { 
    $('div[id=' + tempId + '] input').each(function() { 
    if ($(this).checked == true) { obj = $(this); } 
    }); 
} 

但最终的obj = NULL 。

+0

注意:[接受答案是如何工作的?](http://meta.stackexchange。 com/questions/5234 /如何接受答案) – Yoshi

回答

1
var radio = $('#RB-01 input:radio:checked'); 
console.log(radio); 
0

可以使用:checkedselector这样的:

var selectedRadios = $('#RB-01 input:checked'); 
0

jQuery的对象不具有任何checked财产。只是不要从元素中创建一个jQuery对象。

注意:您可以在选择器中使用#运算符而不是[id=...]。在循环之前,你不需要检查选择器是否返回任何东西,循环一个空的jQuery对象是完全有效的。您不必将布尔值与true进行比较以检查它是否为真。

var obj = null; 
var tempId = "RB-01"; 
$('div#' + tempId + ' input').each(function() { 
    if (this.checked) obj = $(this); 
}); 

你甚至可以使用选择找到检查元素:

var tempId = "RB-01"; 
var ch = $('div#' + tempId + ' input:checked'); 
var obj = ch.length > 0 ? ch.last() : null; 

(注:我用last方法来获得最后的匹配元素,使得它的工作原理相同的代码如果你知道只有一个选中的元素,你可以使用first方法代替。)