【问题标题】:Javascript calculating sum of a HTML table column with For loopJavascript计算带有For循环的HTML表格列的总和
【发布时间】:2010-12-31 11:21:14
【问题描述】:

我有这个无法解决的 Javascript 问题。我的代码是:

<script type="text/javascript">
var l=liste.rows.length;    
var i;    
var den=0    
for (i=0;i<=l;i++)  
{  
den=parseInt(liste.rows[i].cells[7].innerHTML)  
den+=den  
}  
alert(den)  
</script>

当我将 alert(den) 放在括号内时,代码对每个步骤都有效。但是当我把它放在支架外面时,我不能有一个警告框,不知道为什么。有人可以帮帮我吗?

【问题讨论】:

  • 不要忘记将基数添加到 parseInt,否则如果您的值恰好以 0 开头,您可能会得到奇怪的结果。 => parseInt(value, 10);.

标签: javascript html loops for-loop


【解决方案1】:

你每次迭代都会覆盖 den,改成这样:

<script type="text/javascript">
    var l=liste.rows.length;
    var i;
    var den=0;
    for (i=0;i<l;i++) {
        den += parseInt(liste.rows[i].cells[7].innerHTML, 10);
    }
    alert(den);
</script>

编辑:根据 Tatu Ulmanen 的评论,我在 parseInt 中添加了基数,几个月前这让我发疯了 xD

【讨论】:

【解决方案2】:

你必须首先确保文本确实是整数才能进行求和,

TryParseInt 会为你做这件事。

function TryParseInt(str,defaultValue)
{     
  var retValue = defaultValue;
  if(str!=null)
  {
    if(str.length>0)
    {
       if (!isNaN(str))
       {
          retValue = parseInt(str);
       }
     }
  }     

return retValue; 
}

var den = 0;
for (var i=0; i<=liste.rows.length; i++)
{
   den += TryParseInt(liste.rows[i].cells[7].innerHTML,0);
}
alert(den);

Reference

【讨论】:

    猜你喜欢
    • 2016-09-19
    • 2015-04-18
    • 2017-12-16
    • 2014-10-13
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    相关资源
    最近更新 更多