使用JQuery对表中的整数求和,然后找到最大的和

时间:2014-03-19 01:37:51

标签: javascript jquery parseint

我有一个大型HTML表格,每24小时自动更新一次新数据。第5列包含由换行符分隔的每行中的多个数字,每个数字包含类.remaining-detail。我想从每一行添加数字,然后找到哪一行包含第5列中的最大总和。

<table>
<tr class="row-3 odd">
    <td class="column-1 ">ID</td><br><br><td class="column-2 ">                            <a href="*" class="ex" title="Big Money">Name</a><br>

<br><td class="column ">                            <a href="*" class="ex" title="Big Money">Area</a><br>
                            <br>
                            </td><td class="column-3 ">$5</td><td class="column-4 ">                            <div class="remaining-detail">$100,000.00</div>
                            <div class="remaining-detail">$10,000.00</div>
                            <div class="remaining-detail">$1,000.00</div>

                            <div class="remaining-detail">$500.00</div>
                            <div class="remaining-detail">$400.00</div>
                            <div class="remaining-detail">$100.00</div><br><br>
                            </td><td class="column-5 ">                            <div class="remaining-detail">1</div><br>
                            <div class="remaining-detail">0</div><br>
                            <div class="remaining-detail">36</div><br>

                            <div class="remaining-detail">64</div><br>
                            <div class="remaining-detail">100</div><br>
                            <div class="remaining-detail">972</div><br>
                            </td>
</tr></table>
<br>

我正在添加这样的数字:

$(document).ready(function(){
var sum = 0;

$('.row-2 .column-5 .remaining-detail').each(function () {
sum += parseInt($(this).html().replace(',',''));
});
$('#sum2').text(sum);
});

这适用于单个实例。我将如何为.ROW N .column-5 .remaining-detail执行此操作,然后找到总和最大的行?

这是我现在所掌握的一个小提琴:http://jsfiddle.net/3LHb8/

3 个答案:

答案 0 :(得分:0)

可悲的是,这就是你要找的东西

 $(document).ready(function(){
    var maxsum = 0;


        $(".column-5").each(function(){
            alert('inside');
            var coloumnSum = 0;
            $(this).find(".remaining-detail").each(function(){          
                coloumnSum = coloumnSum + parseInt($(this).html(), 10);
            });
            if(maxsum < coloumnSum){
                maxsum = coloumnSum;
            }
        });
    alert(maxsum);
    });

答案 1 :(得分:0)

您可以使用两个嵌套的.each()循环来完成此操作。这是一个例子:

$(document).ready(function(){

    var sums = [];

    $('tbody tr').each(function() {
        var rowSum = 0;
        $(this).find('.remaining-detail').each(function () {
            rowSum += parseInt($(this).html().replace(',',''));
        });
        sums.push(rowSum);
    });

    $('#sum2').text("Biggest sum is in row " + (1 + sums.indexOf(Math.max.apply(Math, sums))));

});


Here's the jsFiddle。我存储每行的总和,然后打印具有最高总和的行,但您可以做任何您需要的变化。希望它有所帮助。

答案 2 :(得分:-1)

很难说没有HTML ...你能分享至少2行你的html表,我们可以提供帮助。

噢,你可以尝试这样的事情:

var sum = 0;
var sum2 = 0;
var trIndex = 0;
$('.row-2 .column-5').each(function () {
    sum = 0;
    $(this').find('.remaining-detail').each(function () {
        sum += parseInt($(this).html().replace(',',''));
        });
        if (sum > sum2)
        {
            sum2 = sum;
            trIndex = $(this).parents('tr').index();
        }
    });
}

alert('row='+trIndex+' sum='+sum2);
$('tr').eq(trIndex-1).css('background-color','#ff0000');

修改

感谢您分享一些HTML,请告诉我们我们提供的示例代码是否适合您:)