我在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.而不是整句。而且我知道我可以使用子串这样的东西,但我想知道是否有一种“干净”的方式。
答案 0 :(得分:4)
var max = Math.max.apply(Math, $('input').map(function(){
return this.name.match(/\d+/);
}).get());
console.log(max);
答案 1 :(得分:0)
如果你想只提取数字2:
$('input[name^="temp"]').size()-1;
答案 2 :(得分:0)
在此处使用data- attribute: -
<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');
在此处查看实时演示 Live demo link
答案 3 :(得分:0)
一点点幻想(还有一个解决方案):
var max = $('input').map(function(){
return this.name.match(/\d+/);
}).get().sort().reverse()[0];
答案 4 :(得分:0)
尝试:
var lastName = $('input[name^="temp"]').find(":last").prop("name"),
amount = lastName.replace(/^temp\[|\]\.Amount/g,'');