2016-12-10 144 views
1

我使用jQuery append()函數創建了多組單選按鈕,使用不同的名稱進行分組。jQuery選擇不同組單選按鈕之間的單選按鈕索引

每個組都有多個單選按鈕,並且具有不同的組名。現在的問題是,我希望能夠使用jQuery爲特定的組找到所選單選按鈕的索引。不知道該怎麼辦

<input type='radio' name='group1' value='g1v1'> 
<input type='radio' name='group1' value='g1v2'> 
<input type='radio' name='group2' value='g2v1'> 
<input type='radio' name='group2' value='g2v2'> 

,現在選擇與jQuery的組1選中單選按鈕與

$("input[type='radio'][name='group1']:checked").index(); 

給我0始終。我不確定我做錯了什麼,做什麼。

+0

當您選擇檢查收音機,什麼(是)事件?你能提供更多的代碼嗎? – sinisake

+0

在我創建單選按鈕的函數中,我有一個爲「更改」事件定義的委託函數。在這個委託函數內,我試圖獲取所選單選按鈕的索引。 – Novice

+0

我們需要這個函數,因爲它是按照你的描述寫的(並且根據你的描述),你的代碼的工作原理如下:https://jsfiddle.net/otbjfLxc/ – sinisake

回答

1

由於您沒有使用不同容器對單選按鈕進行分組,因此index()在這種情況下不起作用。你可以使用prevAll()這個方法。在單選按鈕的更改上獲取它的name並選擇與此name以前的所有單選按鈕,然後獲得他們的length如下。

$(document).on("change", "input[type='radio']", function() { 
 
    var index = $(this).prevAll("[name=" + this.name + "]").length; 
 
    alert(index); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='radio' name='group1' value='g1v1'>G1 0 
 
<input type='radio' name='group1' value='g1v2'>G1 1 
 
<input type='radio' name='group1' value='g1v3'>G1 2 
 
<input type='radio' name='group2' value='g2v1'>G2 0 
 
<input type='radio' name='group2' value='g2v2'>G2 1 
 
<input type='radio' name='group2' value='g2v3'>G2 2

+0

好的,如果我將它們分組到不同的字段集中,那麼簡單的index()就足夠了? – Novice

+0

是的。 @Novice – Azim