Javascript:keyup事件的输入计算它们的和
我不熟悉javascript及其事件。这是我的html代码表,我有一个收入标题和它各自的价格Javascript:keyup事件的输入计算它们的和,javascript,jquery,html,input,sum,Javascript,Jquery,Html,Input,Sum,我不熟悉javascript及其事件。这是我的html代码表,我有一个收入标题和它各自的价格 <table class="table table-hover table-bordered" id="incomeId"> <thead> <tr> <th> sn </th> <th> Title of income </th> <th> Price <
<table class="table table-hover table-bordered" id="incomeId">
<thead>
<tr>
<th> sn </th>
<th> Title of income </th>
<th> Price </th>
<th> Action </th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>
<select name="name" id="inputID" class="form-control">
<option value=""> -- Select One --</option>
</select>
</td>
<td>
<input type="text" name="name" id="income_price" class="form-control income" value="" title="" required="required">
</td>
<td>
<span class="glyphicon glyphicon-trash"></span>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td></td>
<td></td>
<td> Total: <div class="total" id="total"></div> </td>
<td></td>
</tr>
</tfoot>
</table>
<button type="button" class="btn btn-info" id="add-new">Add New Income</button>
要在表javascript代码中添加新行
$('#add-new').on('click', function () {
$("#incomeId").each(function () {
var tds = '<tr>';
jQuery.each($('tbody tr:last td', this), function () {
tds += '<td>' + $(this).html() + '</td>';
});
tds += '</tr>';
if ($('tbody', this).length > 0) {
$('tbody', this).append(tds);
} else {
$(this).append(tds);
}
});
});
但我希望在表中创建新行之前,从所有价格部分中获取价格,并将其相加到总计部分中的每个价格。当我创建新行时,最近创建的价格应添加到以前的总价中。
请帮我找出解决办法 那么您有一堆动态插入的输入,您想绑定到updateTotal事件处理程序 最简单的选择是简单地将事件处理程序绑定到静态包装器元素。我建议使用表单元素,但由于示例中没有表单元素,因此表体可能是另一个选项
$('table#incomeId > tbody').on('keyup', 'input', function(e){
var total =
$(e.delegateTarget)
.find('input')
.map(function(){
return parseFloat($(this).val()) || 0;
})
.get()
.reduce(function(a,b){
return a + b;
});
$('#total').text(total);
});
$'add-new'。单击,函数{
$incomeId.eachfunction{
var tr=$'tbody>tr:last',this.clone;
tr.find'input'.val;
var sntd=tr.find'td:first';
var sn=parseIntsntd.text+1;
sntd.textsn;
$'tbody',this.appendtr;
回来
};
};
$'tableincomeId>tbody'。在'keyup'、'input'函数上{
var总计=
$e.delegateTarget
.查找“输入”
.mapfunction{
返回parseFloat$this.val | 0;
}
收到
.还原函数a,b{
返回a+b;
};
$'total'.texttotal;
};
锡
收入名称
价格
行动
1.
-选择一个-
总数:
添加新收入您的问题与标题中的多个关键点有什么关系?我想使用关键点事件从每个输入框中获取值并添加到总计部分。非常感谢先生。这正是我想要的。另外,先生,在表中添加新行后,如何增加表的序列号?如果您对此有任何想法,请与我们分享。通常我更喜欢在元素上使用数据属性或在内部存储计数器,而不是解析DOM节点。但是为了坚持你所知道的,最简单的方法是找到序列号td元素,解析整数文本,递增并设置它。我已经为你更新了上面的例子。请注意,上面的示例没有说明删除输入之类的情况,这可能会导致序列号中断谢谢您,先生。告诉我一件事,我如何以一种好的方式管理序列号和删除行。