简体   繁体   English

用javascript计算html表中的数字

[英]calculate numbers in html table with javascript

I am working on a project where I need to calculate some numbers in html table with javascript. 我正在一个项目中,我需要使用javascript计算html表中的一些数字。 The user can add as much numbers as they need and once they click a button, they'll need to see the end sum. 用户可以根据需要添加任意数量的数字,单击按钮后,他们将需要查看最终的总和。 I would like to know how I can do that with javascript, you can find the code below: 我想知道如何使用javascript做到这一点,您可以找到以下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Javascript Calculator</title>

    <SCRIPT language="javascript">    
   function Calculate()
{
}
    function addRow()
    {
var table = document.getElementById('table');

var button = document.getElementsByTagName('input')[0];

button.onclick = function() {
    var clone = table.rows[table.rows.length - 2].cloneNode(true);
    clone.cells[0].firstChild.data =
        clone.cells[0].firstChild.data.replace(/(\d+):/,function(str,g1) {
                                                           return (+g1 + 1) + ':';
                                                        });
    table.tBodies[0].appendChild(clone);
};
 }
    </SCRIPT>
</head>

<input type=button value='Add Row' onclick="addRow()" />
<br /><br />
<table cellspacing=0 cellpadding=4 id="table">
<tbody>
<tr><td>Number 1:</td><td><input value=20 style="width:30px" type=text  maxlength=2/></td></tr>
<tr><td>Number 2:</td><td><input value=25 style="width:30px" type=text  maxlength=2/></td></tr>
</tbody>
<tfoot>
<tr><td style="border-top:solid 1px black;border-bottom:solid 1px black;">Sum:</td><td style="border-top:solid 1px black;border-bottom:solid 1px black;"><div>45</div></td></tr>
    </tfoot>
</table>
<input type=button value='Recalculate Sum' onclick="Calculate()" />
</body>
</html>

Any idea how I can solve this? 知道我该如何解决吗? Thanks in advance, Laziale 在此先感谢Laziale

You can loop through each input element in the table and grab the value . 您可以遍历表中的每个输入元素并获取value

function Calculate() {
    var table = document.getElementById('table');
    var items = table.getElementsByTagName('input');
    var sum = 0;
    for(var i=0; i<items.length; i++)
        sum += parseInt(items[i].value);
    var output = document.getElementById('sum');
    output.innerHTML = sum;
}

demo 演示


The only change I made to the HTML was giving an ID to the output div. 我对HTML所做的唯一更改是给输出div赋予了ID。

<div id="sum">45</div>

use this to grab the inputs 用这个来获取输入

var inputs = document.getElementsByTagName('input'); 

this will grab all the inputs's, not just 'text' inputs, so you'll want to use something like this in the loop 这将获取所有输入,而不仅仅是“文本”输入,因此您需要在循环中使用类似这样的内容

if(inputs[i].type == 'text')
   total = total + parseInt(inputs[i].value);

and set the value like this 并像这样设置值

document.getElementById('displaySum').innerHTML = total;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM