2011-07-29 78 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方法代替。)