jQuery减去连续的表格单元格

时间:2010-10-23 03:24:18

标签: jquery

我正在尝试确定如何计算jQuery中连续表格单元格之间的差异。我有一张看起来像这样的桌子。

<table id ="tbl">
  <tr>
    <td>5</td>
    <td>12</td>
    <td>15</td>
    <td>17</td>
  </tr>
  <tr>
    <td>3</td>
    <td>6</td>
    <td>12</td>
    <td>13</td>
  </tr>
</table>

我想从第二个td(12 - 5)减去第一个td,从第二个(15 - 12)减去第三个td,从第三个(17 - 15)减去第四个等等。我需要这样做对于表中的每一行。我确定答案很简单,但我被困住了。我知道我需要遍历每一行,但我怎样才能有效地进行计算?

$('#tbl tr').each(function(){
  // help!
)}

2 个答案:

答案 0 :(得分:1)

.prev() :gt() 是您的朋友。

对每个tr进行迭代,并查看索引大于零的所有td(seoncd td,并在每个tr中)。取td并减去.prev() td以获得答案。

以下是我将结果放在名为results的div中的方法:

$(function() {
    var index = 0;
    $("#tbl tr").find("td:gt(0)").each(function() {
        $this = $(this);
        $("#results").append(++index + ": " + 
                             ($this.html() - $this.prev().html()) + 
                             "<br/>");
    }) 
});

Try it out with this jsFiddle

为了更加确定, you can use parseInt like this

    // You can use parseInt to make sure it's an int. Don't forget the radix!
(parseInt($this.html(), 10) - parseInt($this.prev().html(), 10))

答案 1 :(得分:0)

试试这个

$(function() {
    $("#tbl tr").each(function() {
        var $currentTr = $(this),
            totalRow = new Array(),
            result = 0;

        $currentTr.find("td").each(function() {
            totalRow.push( parseInt( $(this).html(), 10) );
        });

        result = parseInt( totalRow[0], 10);

        for(var i = 1; i < totalRow.length; i++)
        {
            result -= parseInt(totalRow[ i ], 10);
        }

        //result = Current TR's result
    });
});