在具有相同类的每个表上运行jquery

时间:2016-03-10 16:51:58

标签: javascript jquery

我生成了多个表,我正在计算每个表的总计列。

以下适用于第一个表,但是如果我删除“:first”,那么它会给我所有表的总和,这是我不想要的。

    for (int i = 0; i < numAssets; i++){
        std::string& hitVarName1 = (isKO ? "isKO" : "isKI") + Format::toString(i + 1);
         //use hitVarname1 with some other function        
         }

当所有类和td类相同时,如何对每个表执行上述操作,并在每个表下使用摘要。它没有很好的编号表类,因为可能有任何数量。

2 个答案:

答案 0 :(得分:3)

将表格包裹在.each循环中

jQuery('table.views-table').each(function(i,el){
    var table = jQuery(el);
    var total = 0;
    table.find('td.views-field-qty').each(function()
    {
        var price = parseInt(jQuery(this).text());
        if (!isNaN(price))
        {
            total += price;
        }
    });
    table.after('<p> Total Tickets Sold: <strong>' + total + '</strong></p>');
});

答案 1 :(得分:2)

您需要修改逻辑,以便在桌面上调用each(),然后再在该表中的每个td调用。试试这个:

jQuery(function($) {
    $('table.views-table').each(function() {
        var $table = $(this), total = 0;
        $table.find('td.views-field-qty').each(function() {
            total += parseInt(jQuery(this).text(), 10) || 0;
        });
        $table.after('<p> Total Tickets Sold: <strong>' + total + '</strong></p>');
    });
});

请注意,您可以使用if运算符作为提供变量默认值的快捷方式,从而无需||语句。