Javascript Jquery-各种价格格式的求和错误

Javascript Jquery-各种价格格式的求和错误,javascript,jquery,Javascript,Jquery,我在使用jquery以各种价格格式计算价格时遇到问题(取决于语言) 德语版:1.375,50欧元(返回1.38欧元) 英文格式:1375.50欧元(不起作用) 法文格式:1 375,50欧元(返回1.00欧元) 意大利格式:1375.50欧元(不起作用) 西班牙文格式:1.375,50欧元(无效) 以下是我的工作演示的链接: 这是我的代码: function ca(){ var $overall = 0; $("tr.sum").each(function() {

我在使用jquery以各种价格格式计算价格时遇到问题(取决于语言)

德语版:1.375,50欧元(返回1.38欧元)
英文格式:1375.50欧元(不起作用)
法文格式:1 375,50欧元(返回1.00欧元)
意大利格式:1375.50欧元(不起作用)
西班牙文格式:1.375,50欧元(无效)
以下是我的工作演示的链接:

这是我的代码:

function ca(){
    var $overall = 0;

    $("tr.sum").each(function() {

        var $qnt = $(this).find(".qty");
        var $price = $(this).find("td").eq(2);

        console.log($qnt + " | " + $price);

        var sum = parseFloat($price.text().replace(",", ".")) * parseFloat($qnt.val().replace(",", "."));

        if(isNaN(sum)) {
            sum = 0;
        }
        $(this).find("td").eq(3).text(Math.round(sum * 100) / 100);

        $overall += sum;

    });

    $("#total").text($overall);
}

$(function() {

    ca();
    $('input.qty').bind('change keyup',function(){ca();});

});
价格“td”可以包含其他文本,例如“含19%税”

我这里的问题是,我如何使用一个只包含价格的css类(不包含欧元符号)在计算中使用它,以及如何在所有价格格式的价格计算中避免点和逗号的问题

(我一直是jquery的初学者……)


谢谢你的帮助

不管其他什么,您的代码都必须知道区域设置的格式规则,否则您将无法正确设置结果和的格式

但是,通过将价格数据从价格显示中分离出来,可以避免担心代码主体中的区域设置差异。一种方法是在包含价格显示的元素上使用

例如,假设您的行当前如下所示:

<tr><td>Widget</td><td>1</td><td>1 375,50 €</td></tr>
然后,您可以通过
attr(“数据价格”)
访问它:

这将以一种非常可靠的方式为您提供价格


但是,最后,您需要知道区域设置规则,以便以正确的格式显示
$total

正是我的想法。使用
data price
属性,或者使用
jQuery
的本机语言。@Shef:是的,但是如果您知道您正在处理
data-*
属性,那么使用
data('price')
只是一种非常迂回的方式来处理
attr('data-price')
。jQuery在其
数据
函数(
数据-*
属性和其他通过编程分配的结构化数据)中合并了两个不相关的东西,因此我倾向于远离它。
<tr><td>Widget</td><td>1</td><td data-price="1375.5">1 375,50 €</td></tr>
var thisPrice = parseFloat($(this).find("td:eq(2)").attr("data-price"));