javascript - 如何使用 jquery 在 TR 中的单击事件上自动求和 TD 值

标签 javascript jquery html ajax html-table

如何在点击TR时自动求和TD值(使用class="abc"),求和的结果必须在里面带有 class="total"TD

下面是我的 HTML:

<table>
<tr>
    <td>Bla bla</td>
    <td>Bla bla</td>
    <td class="abc">30</td>
<tr>
<tr>
    <td>Bla bla</td>
    <td>Bla bla</td>
    <td class="abc">40</td>
<tr>
<tr>
    <td>Bla bla</td>
    <td>Bla bla</td>
    <td class="abc">30</td>
<tr>
<tr>
    <td>Bla bla</td>
    <td>Bla bla</td>
    <td class="total">100</td>
<tr>
</table>

我的意思是: Table

最佳答案

Fiddle Demo

var total = $('td.total'), //cache your selectors
    td_abc = $('td.abc');
$('tr').click(function () { //handle click event on tr
    total.text(function () { //set total text
        var sum = 0; //set sum to 0
        td_abc.each(function () { //loop through each td element with class abc
            sum += +$(this).text() //add it text to sum
        });
        return sum; //set sum to total
    })
});

Learn jQuery

jQuery API


在 OP 发表评论后更新

var total = $('td.total'),
    td_abc = $('td.abc');
$('tr').click(function () {
    $(this).find('td.abc').data('countme', 1).css('color', 'red');//set .data('countme', 1) to the td.abc inside tr
    total.text(function () {
        var sum = 0
        td_abc.filter(function () {
            return $(this).data('countme') == 1; //filter elements which has .data('countme', 1) to be added in sum
        }).each(function () {
            sum += +$(this).text()
        });
        return sum;
    })
});

Fiddle Demo


如果你想要切换效果。如果你再次点击它不计入总和。

Fiddle Demo

关于javascript - 如何使用 jquery 在 TR 中的单击事件上自动求和 TD 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23509171/

相关文章:

javascript - 如何禁用浏览器功能和快捷键进行全屏在线考试?

javascript - 从 url 中删除 anchor - 将字符串添加到 url - 并再次在末尾附加 anchor

javascript - 使用 jQuery 在文本框的值中传递空格

javascript - 数学轮函数

javascript - 如何在 Node 中加载单个AMD模块?

javascript - 如何区分数字串和字符串?

javascript - 将标准算术字符串转换为由管道分隔的 BODMAS 字符串

javascript - iframe 中父级到子级的跨域访问

html - 已在页面上时禁用链接

html - 动态表单和数据库架构