1

我有一个动态创建的表,我需要对表的第二列求和。我一直得到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);
 }); 
4

1 回答 1

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

第二

Atd没有称为的属性.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)
于 2013-06-03T20:46:37.107 回答