2015-11-21 82 views
0

我正在嘗試在單擊按鈕時獲取所選輸入收音機的索引。所以,我使用點擊功能。如何獲取所選輸入收音機的索引

$('id').click(function(){ 
    $('input[name="name"]').each(function(){ 
     if($(this).prop('checked') === 'checked'){ 
      ... 
     } 
    }) 
}) 

但是我發現,輸入無線的檢查屬性不會改變,其實沒有「檢查」 ATTR在所有的DOM節點。

那麼,我必須在通過$ .change()方法讀取之前在輸入收音機上設置'checked'prop嗎?如果沒有,那麼,如何獲得已被選擇的輸入無線電的索引。

謝謝。

+0

'$(本)的.index()'? – guradio

+0

我不是要求代碼來替換...部分,我是說if條件不會工作,因爲在選定後在輸入節點上根本沒有[檢查]任何道具。 –

+1

作爲旁邊$(this).prop('checked')'是一個布爾值,因此如果您要使用條件語句,則不應該需要'==='checked''。 –

回答

3

$('#btn').click(function(){ 
 
var index = $("input[name=radio]:checked").index(); 
 
$('#span').html(index) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type='radio' name='radio'> 
 
<input type='radio' name='radio'> 
 
<input type='radio' name='radio'> 
 
<input type='radio' name='radio'> 
 
<input type='radio' name='radio'> 
 
<input type='button' value='click' id='btn'> 
 
<span id='span'></span>

嘗試這樣

+0

謝謝,它的工作 –

+0

很高興它幫助隊友.. – guradio

0

這應該是你所需要的。

var index = $('input[name="name"]:checked').index(); 
1

使用.each()功能,你可以抓住每一個元素的索引。

使用.is(':checked')函數可以檢查是否檢查了某些內容。

混合在一起,這些,你可以嘗試這樣的事:

$("input[type=checkbox]").each(function(i,o){ 
    if($(this).is(":checked")) 
     alert(i); 
}); 

CHECK OUT THIS DEMO

+1

是(「:checked」)爲我工作,非常感謝。 –