最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Javascript calculating sum of a HTML table column with For loop - Stack Overflow

programmeradmin1浏览0评论

I have this Javascript problem I cannot solve. My code is:

<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>

When I put alert(den) inside the bracket code works for each step. But when I put it outside the bracket I can't have an alert box, couldn't figure out why. Can anybody help me?

I have this Javascript problem I cannot solve. My code is:

<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>

When I put alert(den) inside the bracket code works for each step. But when I put it outside the bracket I can't have an alert box, couldn't figure out why. Can anybody help me?

Share Improve this question edited Jun 18, 2017 at 9:15 Brian Tompsett - 汤莱恩 5,89372 gold badges61 silver badges133 bronze badges asked Dec 31, 2010 at 11:21 AlbertAlbert 31 silver badge3 bronze badges 1
  • 3 Don't forget to add the radix to the parseInt, otherwise you might get weird results if your values happen to start with 0. => parseInt(value, 10);. – Tatu Ulmanen Commented Dec 31, 2010 at 11:30
Add a ment  | 

2 Answers 2

Reset to default 6

You are overwritting den each iteration, change to this:

<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>

edit: according to Tatu Ulmanen's ment I add radix to parseInt, this one drove me crazy a couple of months ago xD

You must assure first that the text is integer indeed the do the summation,

TryParseInt will do that for you.

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

发布评论

评论列表(0)

  1. 暂无评论