我有一些动态创建的输入,名称/ ID增加。我想:
我正在使用jQuery 1.9.1。
这样的行:
<input type="text" name="Amount1" id="Amount1" value="0" class="Amount">
<input type="text" name="Amount2" id="Amount2" value="" class="Amount">
<input type="text" name="Amount3" id="Amount3" value="10" class="Amount">
<input type="text" name="Amount4" id="Amount4" value="150" class="Amount">
并将总数放在:
<input type="text" name="Totals" id="Totals" value="" class="Totals">
这是我的想法可能有用,但甚至不是很接近:
$('input[name^="Amount"]').each(function(){
var emptyTextBoxes = $('input:text').filter(function() { return this.value == ""; });
emptyTextBoxes.each(function() {
//total up numbers
???
});
});
答案 0 :(得分:2)
当然,这可以做得更轻松;第一个语句已经选择了您需要的所有输入字段:
var total = 0;
$('input[name^="Amount"]').each(function() {
total += parseInt(this.value, 10) || 0;
});
$('#Totals').val(total);
空值上的 parseInt()
将返回NaN
,因此我使用|| 0
构造有效地跳过它们(即将0
添加到总数中) 的
答案 1 :(得分:0)
你可以总结一下:
var total = 0;
emptyTextBoxes.each(function() {
total += parseInt(this.value, 10);
});
或.map()
以及更新的浏览器:
var total = emptyTextBoxes.map(function() {
return parseInt(this.value, 10);
}).get().reduce(function(a, b) {
return a + b;
});
答案 2 :(得分:0)
var total = 0;
$(".Amount").each(function() {
if (this.value == '') { this.value = 0; }
total += parseInt(this.value);
});
$('.Totals').val(total);