同名元素jquery的索引

时间:2015-11-25 09:42:43

标签: javascript php jquery

我有许多同名的元素:

<input type="text" name="Education[GraduationDate][0]" />
<input type="text" name="Education[GraduationDate][1]" />
<input type="text" name="Education[GraduationDate][2]" />
<input type="text" name="Education[GraduationDate][3]" />

我希望jquery给我选择器名称的索引号,所以如果我选择第一个给我数字(0),依此类推。

我用jquery做了这个:

 var arrayname = $(this).attr('name');
 var arrayindex = arrayname.substring(24,25);

arrayindex返回我想要的索引,但我认为这不是一个好方法,因为也许你有2位数的索引,所以子字符串不能正常工作。

请建议..

3 个答案:

答案 0 :(得分:4)

  

需要教育[GraduationDate]不仅仅是教育

尝试使用.index()并将 "input[name^=Education]" "input[name^=Education\\[GraduationDate\\]]"作为选择参数传递

.index( selector )
     

选择

     

类型:选择器

     

表示要在其中查找元素的jQuery集合的选择器。

$("input").change(function() {
  console.log($(this).index("input[name^=Education\\[GraduationDate\\]]"))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" name="Education[GraduationDate][0]" />
<input type="text" name="Education[GraduationDate][1]" />
<input type="text" name="Education[GraduationDate][2]" />
<input type="text" name="Education[GraduationDate][3]" />

答案 1 :(得分:2)

您可以使用

$("[name^='Education[GraduationDate]']").index(this)

Fiddle

答案 2 :(得分:0)

希望这可以帮到你:

...
var name = ($this).attr('name'); 
var digits = name.match(/\d+/g)
var index = digits.pop() // suppose your name has more than one digit, the last one is what you want(index) 
...