如果单元格为空,则插入此单元格0

时间:2014-04-24 16:12:14

标签: javascript jquery

我使用这个jquery脚本来查看一列中的数字总和(所有单元格, .iloscwarki 类)

$(document).ready(function(){
     colSum();
});

function colSum() {
    var sum=0;
    //iterate through each input and add to sum
    $('.iloscwarki').each(function() {     
            sum += parseInt($(this).text());                     
    }); 
    //change value of total
    $('#warki2014').html(sum);
}

这个插件工作得非常好但是我有一个问题,当一些单元格为空时(它们只包含 .l ,没有任何数字)。如何编辑此jquery以将数字0添加到每个单元格,其中包含 iloscwarki 类,但不包含任何数字? 我在Wordpress中使用此脚本,此行生成类 iloscwarki

的单元格
<td class="iloscwarki"><?php echo get_post_meta($post->ID, 'ilosc', true); ?> l.</td>

3 个答案:

答案 0 :(得分:3)

如果我理解正确的问题,请尝试更改此行:

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

阅读

sum += $(this).text() != "l." ? parseInt( $(this).text() ) : 0;  

如果有数字,则会添加数字,否则为0。

答案 1 :(得分:1)

如果你想忽略循环中不以整数开头的字符串,那只需要检查真实性(因为NaN是假的而且0不影响总和):

$('.iloscwarki').each(function() {
    var value = parseInt($(this).text());

    if (value) {
        sum += value;
    }
});

答案 2 :(得分:1)

我建议在将单元格值添加到总和之前在colSum()函数中执行此操作:

function colSum() {
    var sum = 0;

    //iterate through each input and add to sum
    $('.iloscwarki').each(function() {
        var $t = $(this);
        if(! $t.text() ) $t.text('0');
        sum += parseInt( $t.text() );
    });

    //change value of total
    $('#warki2014').html(sum);
}