我有许多同名的元素:
<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位数的索引,所以子字符串不能正常工作。
请建议..
答案 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)
答案 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)
...