如何从多个元素的同名获取name属性的索引。

时间:2013-08-26 06:34:28

标签: javascript jquery html

我有一些输入字段,具有相同的名称,但我只想获得每个输入的索引值,如下所示

<input type="text" name="op_price[20]" value="20.00" size="3"  >
<input type="text" name="op_price[2]" value="13" size="3">
<input type="text" name="op_price[14]" value="12" size="3">

所以,例如我只想从op_price name属性获得20,2,14,是他们的任何JS或jquery方法来做到这一点

5 个答案:

答案 0 :(得分:5)

这将返回数组中的索引:

var indexes = $('[name^="op_price"]').map(function(){
    return this.name.match(/\d+/);
}).get();

console.log(indexes); // ["20", "2", "14"] 

答案 1 :(得分:0)

使用attributeContains selector

Ex来自docs:

$( "input[name*='man']" ).val();

答案 2 :(得分:0)

如果您不打算更改输入字段的名称,可能是您可以迭代循环以获取所有值?试试这个:

for(i=0;document.getElementById('op_price['+i+']';i++)
 alert(document.getElementById('op_price['+i+']');

这将在循环的每次迭代中为您提供第i个输入字段的值!

答案 3 :(得分:0)

var name = $("input:text").attr("name");
name = name.replace("op_price[", "").replace("]", "");
alert(name);

参见 DEMO

答案 4 :(得分:0)

就好像你得到了你的名字属性

   var name="op_price[20]"  

name.replace(/op_price\[(\d*)?]/gi, $1);

然后op_price [20]替换为20