首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于类对表列的所有值求和

基于类对表列的所有值求和
EN

Stack Overflow用户
提问于 2012-02-15 20:35:17
回答 1查看 77.6K关注 0票数 22

我尝试检索基于特定类的td中所有值的总和。代码没有抛出任何错误,但我的sum结果一直是"0“。

是否必须以特定的方式指定数值?我在这里看到了一些其他的答案,所以我从哪里模仿了代码,我看不出我的和他们的有什么真正的区别,所以我很困惑为什么我的不能工作。

下面是我参考的教程:http://viralpatel.net/blogs/2009/07/sum-html-textbox-values-using-jquery-javascript.html

这是我的javascript

代码语言:javascript
复制
$(document).ready(function(){
$('.price').each(function() {
    calculateSum();
});
});

 function calculateSum() {

var sum = 0;
//iterate through each td based on class and add the values
    $(".price").each(function() {

        //add only if the value is number
        if(!isNaN(this.value) && this.value.length!=0) {
            sum += parseFloat(this.value);
        }

    });
$('#result').text(sum);    
};

这是我的html

代码语言:javascript
复制
<table border="1">
<tr>
<th>Item</th>
<th>Price</th>
</tr>
<tr>
<td>Banana</td>
<td class ="price">50</td>
</tr>
<tr>
 <td>Apple</td>
 <td class ="price">100</td>
</tr>
</table>

<div id="result"></div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-15 20:37:00

您希望使用text()而不是this.value (因为<td>没有“值”):

代码语言:javascript
复制
var sum = 0;
// iterate through each td based on class and add the values
$(".price").each(function() {

    var value = $(this).text();
    // add only if the value is number
    if(!isNaN(value) && value.length != 0) {
        sum += parseFloat(value);
    }
});

此外,您还会多次遍历.price元素(调用calculateSum)。你可以替换

代码语言:javascript
复制
$(document).ready(function(){
    $('.price').each(function() {
        calculateSum();
    });
});

使用

代码语言:javascript
复制
$(calculateSum);
票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9293492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档