不会将表列jQuery汇总

时间:2013-06-03 20:44:40

标签: javascript jquery html-table sum

我有一个动态创建的表,我需要对表的第二列求和。我总是得到0作为总和。 我做错了吗?

这是在创建表格后单击和键时调用的函数。

 function bukkake(){



    var sum = 0;
    $('.teedee td').eq(1).each(function(){
    sum += $(this).val();
    });
    $('#sum_result').append("The sum is: " + sum)



 }

这是创建表的代码的一部分:

$.getJSON("nutritional_value.php?value=" + encodeURI(value), function (data) {
var ttr = $("<tr />");   
$.each(data, function(k, v){
var store_1 = v * (parseFloat(uneseno, 10) / 100);
var xstore_1 = store_1.toFixed(2);

$("<td class='teedee'></td>").text(k=='name' ? v : xstore_1).appendTo(ttr);



 });

 $("#tejbl").append(ttr);
 }); 

1 个答案:

答案 0 :(得分:2)

首先使用错误的选择器

  $('.teedee td').eq(1).each(function(){ // You are trying to select
                                         // a td inside a class

应该是

$('td.teedee').eq(1).each(function(){  // But td is the one with the class

<强>第二

td没有名为.val()

的属性

如果您想要定位其中的文字,请使用.text()

<强>第三

$('td.teedee').eq(1) // Targets only 1 element with index 1

<强>四

使用parseInt将其转换为数字。

sum += parseInt($(this).text(), 10);

否则你会在技术上追加字符串。首先将其转换为数字,然后添加。

修改..

首先parse the text并检查它是否不是数字

var sum = 0;
$('tr').each(function() {
    $('td.teedee', this).eq(1).each(function () {
       var value = parseInt($(this).text(), 10);

       sum += isNaN(value) ? 0 : value;
    });
 });
$('#sum_result').append("The sum is: " + sum)