2016-12-10 113 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