javascript - 如何在 Javascript 或 JQuery 中对非空 <td> 元素的值求和

标签 javascript jquery html sum html-table

我正在尝试对 <td> 内的所有 html 进行求和。 name='gross_val' 的元素。我有以下<td>元素:

<tr><td name="gross_val" align="right" title="gross_val1" ></td></tr>
<tr><td name="gross_val" align="right" title="gross_val2" ></td></tr>
<tr><td name="gross_val" align="right" title="gross_val3" ></td></tr>
<tr><td name="gross_val" align="right" title="gross_val4" ></td></tr>
<tr><td name="gross_val" align="right" title="gross_val5" ></td></tr>

所有这些<td>元素已动态填充其中的值。其中一些<td>元素的总值(value)<tr>它们在里面,其中一些还没有有人居住。我只想总结那些 <td>已填充总值(value)的元素。然后在另一个 <td> 中显示该值元素。

我为此编写了以下 JQuery 和 Javascript:

    function computeGrossValTotal() {
        var x = $("td[name='gross_val']");
        var gValues = [];
        $(x).each(function(index) {
            // this line takes up the raw html inside of that td element
            var valc = $(this).html();
            // this line strips all the currency and other characters and symbols
            // off the 'valc' variable and makes it in an integer format
            var val = Number(WC(valc));
            if (val) {
                gValues.push(val);
            }
        });
        // this line adds the values inside of gValues array
        sum = Number(gValues.reduce(add, 0));
        alert(sum);
    }
    $(document).on("keyup", function() {
        computeGrossValTotal();
    });
   function WC(x) { return Number(x.match(/(?:\d+|\.)/g).join("")); }
   function add(a, b) {return a + b;}

我面临的问题是 sum 不会发出警报,除非所有 <td>元素里面有一些 html。我无法从方程中删除空的 td 元素。请有人指导我如何仅对<td>求和内部具有一定值(value)的元素。

最佳答案

WC 需要检查 x.match() 是否找到了某些内容,因此它不会在 null< 上调用 join/.

function WC(x) {
    var nums = x.match(/(?:\d+|\.)/g);
    if (nums) {
        return Number(nums.join(''));
    } else {
        return null;
    }
}

关于javascript - 如何在 Javascript 或 JQuery 中对非空 <td> 元素的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39563329/

相关文章:

javascript - 路由整个文件夹及其内容

javascript - 我想在 jquery 对话框中放置一个网页,并在对话框关闭时获取对话框中网页的 URL

html - 在 HTML 中,每个按钮、字体看起来垂直向下而不是在中间

javascript - 如何设置对话框的宽度

javascript - 在 jQuery 中添加新行时禁用其他选择框的选定选项

jquery - 复选框样式 - 如何?

javascript - 字符串迭代行为

javascript - 具有自定义功能的 window.opener 在 Safari 中不起作用

c# - 在 ASP.net c# 中使用 css 样式打印一个 div 及其内容

javascript - 访问通过函数构造的 JavaScript 对象中的变量