【问题标题】:How to use jquery to add/subtract values in adjacent <td></td> elements如何使用 jquery 在相邻的 <td></td> 元素中添加/减去值
【发布时间】:2012-06-13 15:06:14
【问题描述】:

这里有点 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 插件能处理这种事情吗?

【问题讨论】:

  • 如果数据单元格由数据库填充,我不明白为什么很难再填充一个具有差异的单元格。
  • @tkuzzy 我很感激 +1 mysql 顾问一直无法正确分区或索引。分页不是一种选择。
  • @F. Calderan,是的,ID 将动态生成。感谢您的回复。
  • @cerd:我没有否决你的问题。 ._.”
  • @tskuzzy - 向我的朋友道歉。感谢您的反馈。

标签: javascript jquery datatables html-table


【解决方案1】:
var sub = parseInt($('#y1q2').text(), 10) - parseInt($('#y1q1').text(), 10);
$('#dy1q1q2').text(sub);

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

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

如果你的值也可以是浮点数,那么你可以使用.parseFloat()

【讨论】:

  • @cred 如果你的表结构和上面一样,那么我认为我的第二个代码应该可以正常工作
【解决方案2】:

这样的事情怎么样?

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

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

当然,您可以根据需要将其最小化...

【讨论】:

  • 又是一个新手,这些ID将被动态填充。我认为您的解决方案将是正确的,但任何关于避免大量臃肿的 jquery 脚本的建议,因为我有 4500 行,每行都有 2004-2012 年和季度数据 2004-2012(带有 delta Qy-Qx) vals 用于 ea。年。也许是一个 for 循环?
  • 是的,for 循环应该可以工作。我不确定它的性能如何,但我想这是你必须测试的东西。看起来上面的代码悖论为您提供了一个可行的解决方案。您可以使用 for 循环遍历 id,即 for (i = 1; i
【解决方案3】:
var a = document.getElementById('y1q2').innerHTML;
var b = document.getElementById('y1q1').innerHTML;
document.getElementById('d1y1q2').innerHTML = a+b;

假设您在这些列中只有整数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2021-11-27
    • 2010-09-14
    相关资源
    最近更新 更多