我有几个表如下所示:
<table id="table1">
<tr>
<th>Item</th>
<th>Price</th>
</tr>
<tr>
<td>Item 1</a></td>
<td><input type="text" name="sum1" id="sum1" /></td>
</tr>
<tr>
<td>Item 2</a></td>
<td><input type="text" name="sum2" id="sum2" /></td>
</tr>
<tr>
<td>Item 3</td>
<td><input type="text" name="sum3" id="sum3" /></td>
</tr>
<tr>
<td> </td>
<td>Total:</td>
<td>$total </td>
</tr>
</table>
<table id="table2">
<tr>
<th>Item</th>
<th>Price</th>
</tr>
<tr>
<td>Item 1</a></td>
<td><input type="text" name="sum1" id="sum1" /></td>
</tr>
<tr>
<td>Item 2</a></td>
<td><input type="text" name="sum2" id="sum2" /></td>
</tr>
<tr>
<td>Item 3</td>
<td><input type="text" name="sum3" id="sum3" /></td>
</tr>
<tr>
<td>Item 4</td>
<td><input type="text" name="sum4" id="sum4" /></td>
</tr>
<tr>
<td> </td>
<td>Total:</td>
<td>$total</td>
</tr>
</table>
是否有人知道是否有可能对每个输入的项目价格求和(单独为table1,table2等...) 最后打印所有项目的项目总和?
答案 0 :(得分:1)
你需要像jQuery这样的dom操纵器或简单的javascript。我会给田地上一堂课,让它更容易 - 比方说,“总和”。然后你可以从父表中获取所有子项“sum”。将它们的值解析为int并添加。还不错。
答案 1 :(得分:0)
使用jquery这应该很容易,假设你可以为每个输入添加一个名为“line-item”的类名,并且对于应该显示计算总和的单元格的类名“total”,你可以
function calculateSum(tableId){
var sum = 0;
$(tableId + ' .line-item').each(function(){
var value = parseFloat($(this).val().trim());
if(value){
sum += parseFloat($(this).val());
}
});
$(tableId + ' .total').html(sum);
}
并使用您想要的表的id调用此函数。
如果你不能添加一个类名,那么即使只有一个位,也不会得到任何一个,但是在.line-item
尝试只放置input
而不是它,它应该在这个场景中完成。您可以写tr:last-child td:nth-child(2)
更新:添加“parseInt”以避免字符串连接
答案 2 :(得分:0)
更好的方法是不要使用类似的ID调用不同的元素,这是无效的方式。但即便如此 - 您只需使用此表中的输入即可对每个表执行计算。
算法:
您可以使用JavaScript执行此操作,但jQuery更适合您。
但是:不要调用具有相似ID的HTML DOM元素。这是错的!!!