Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 格式为货币的单元格上的sumtr_Jquery - Fatal编程技术网

Jquery 格式为货币的单元格上的sumtr

Jquery 格式为货币的单元格上的sumtr,jquery,Jquery,我使用的是对一列进行求和,但我希望能够从格式化为货币的列计算求和 $('#Cart').sumtr({ readValue: function (e) { return Number(parseFloat(e.data('val')) .replace(/[^0-9\.]+/g, "")); }, formatValue: function (val) { return formatCurrency(val); } });

我使用的是对一列进行求和,但我希望能够从格式化为货币的列计算求和

$('#Cart').sumtr({
    readValue: function (e) { return Number(parseFloat(e.data('val'))
                             .replace(/[^0-9\.]+/g, "")); },
    formatValue: function (val) { return formatCurrency(val); }
});
如果我删除上面的
readValue
,那么代码工作正常,它将总计一个没有货币符号的列;我正在使用
formatCurrency()
方法显示使用货币符号格式化的总额。
但是,如果列(类为“sum”)已使用currency进行了格式化,则
sumtr
无法处理这些值。因此,我尝试使用
readValue
函数除去除数字以外的任何内容,但没有返回任何内容

这是sumtr正在处理的表的一部分

<tr>
    <td>Adrobupicator</td>
    <td class="currency">&#163;700.01</td>
    <td>1</td>
    <td class="sum currency">700.01</td>
</tr>
<tr>
    <td>A1 Product 2</td>
    <td class="currency">&#163;36.28</td>
    <td>1</td>
    <td class="sum currency">36.28</td>
</tr>
<tfoot>
    <tr class="summary">
        <td colspan="3">Cart Total</td>
        <td class="currency"></td>
    </tr>
</tfoot>

自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导自导
£700.01
1.
700.01
A1产品2
£36.28
1.
36.28
购物车总数

如果您使用的是
e.data('val')
,这意味着您已经在td上设置了soem数据val,而我认为您没有这样做

因此,您可以像这样解析td html:

$('#myTable').sumtr({
    readValue : function(e) { return parseFloat(e.html().replace(/[^0-9\.]+/g, "")); },
    formatValue : function(val) { return '$' + val; },
});
或者,如果已设置数据,则可以使用
e.data('val')
。那你就不需要正则表达式了。或者使用数据属性:

<tr>
    <td class="currency" data-val="700.01">&#163;700.01</td>
</tr>

如果您使用的是
e.data('val')
,这意味着您在td上设置了soem数据val,而我认为您没有这样做

因此,您可以像这样解析td html:

$('#myTable').sumtr({
    readValue : function(e) { return parseFloat(e.html().replace(/[^0-9\.]+/g, "")); },
    formatValue : function(val) { return '$' + val; },
});
或者,如果已设置数据,则可以使用
e.data('val')
。那你就不需要正则表达式了。或者使用数据属性:

<tr>
    <td class="currency" data-val="700.01">&#163;700.01</td>
</tr>