如何使用jquery在相邻元素中添加/减去值

时间:2012-06-13 15:06:15

标签: javascript jquery datatables html-table

这里有点jQuery newb但我最近有一个项目,我希望能够减去同一系列中相邻表td元素之间的值。

示例:

    <table>
      <tr>
       <td colspan='3'>Year 2008</td>
      </tr>
      <tr>
        <td>Quarter 1</td><td>Quarter 2</td><td>Change Q1-Q2</td>
      </tr>

      <tr>
        <td>Quarter 1 Val</td><td>Quarter 2 Val</td><td>Quarter 2 - Quarter 1</td>
      </tr>
      <tr>
        <td id='y1q1'>2</td><td id='y1q2'>6</td><td id='dy1q1q2'>4</td>
      </tr>
    </table>

所以我的想法是用(elemid:y1q2.value - elemid:y1q1.value)填充元素id ='d1y1q2'。

我知道这应该在SQL级别处理,但是数据集很大并且数据库的性质不能很好地处理查询中的这些计算。

非常感谢任何帮助! jquery DataTables插件可以处理这类事吗?

3 个答案:

答案 0 :(得分:3)

var sub = parseInt($('#y1q2').text(), 10) - parseInt($('#y1q1').text(), 10);
$('#dy1q1q2').text(sub);

如果你id是动态的,那么:

var lastTR = $('table tr:last'),
    tdSecond = parseInt( $('td',lastTR).eq(1).text(), 10 ),
    tdFirst = parseInt( $('td', lastTR).eq(0).text(), 10 ),
    sub = tdSecond - tdFirst;

$('td:last', lastTR).text(sub);

<强> DEMO

如果您的值也可以是Float,那么您可以使用.parseFloat()

答案 1 :(得分:1)

这样的事情怎么样?

var y1q1Val = parseFloat($('#y1q1').text());
var y1q2Val = parseFloat($('#y1q2').text());
var newVal = y1q2Val - y1q1Val;

$('#dy1q1q2').text(newVal);

当然,你可以根据自己的需要尽量减少这个......

答案 2 :(得分:0)

var a = document.getElementById('y1q2').innerHTML;
var b = document.getElementById('y1q1').innerHTML;
document.getElementById('d1y1q2').innerHTML = a+b;

假设这些列中只有整数