2

我有一个 html 表单,我想使用 javascript 从字段中提取最高数字。例如:


<input id="temp_0__Amount" name="temp[0].Amount" type="text" value="lorum ipsum">
<input id="temp_1__Amount" name="temp[1].Amount" type="text" value="lorum ipsum">
<input id="temp_2__Amount" name="temp[2].Amount" type="text" value="lorum ipsum">

在这种情况下,我想要一个 javascript 来生成 2。

我正在尝试使用 jQuery,但我无法再进一步:

$('input[name^="temp"]').last().name;

这会产生temp[2].Amount. 但我只想提取 2。不是整个句子。而且我知道我可以只使用子字符串之类的东西,但我想知道是否有一种“干净”的方式。

4

5 回答 5

4
var max = Math.max.apply(Math, $('input').map(function(){
      return this.name.match(/\d+/);
}).get());

console.log(max);

http://jsfiddle.net/fmpw3/

于 2013-03-09T16:22:47.757 回答
0

如果您只想提取数字 2:

$('input[name^="temp"]').size()-1;
于 2013-03-09T16:22:43.093 回答
0

在此处使用 data- 属性:-

<input id="temp_0__Amount" name="temp[0].Amount" data-amount="0" type="text" value="lorum ipsum">
<input id="temp_1__Amount" name="temp[1].Amount" data-amount="1" type="text" value="lorum ipsum">
<input id="temp_2__Amount" name="temp[2].Amount" data-amount="2"  type="text" value="lorum ipsum">

您可以在 jquery 中获得价值:-

 var amount = $('input[name^="temp"]').last().data('amount');

在此处查看现场演示现场演示链接

于 2013-03-09T16:22:43.110 回答
0

有点花哨(另一种解决方案):

var max = $('input').map(function(){
   return this.name.match(/\d+/);
}).get().sort().reverse()[0];

http://jsfiddle.net/wSmEV/

于 2013-03-09T16:27:00.800 回答
0

尝试:

var lastName = $('input[name^="temp"]').find(":last").prop("name"),
    amount = lastName.replace(/^temp\[|\]\.Amount/g,'');
于 2013-03-09T16:34:21.633 回答