Javascript Jquery-各种价格格式的求和错误
我在使用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() {
德语版: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"));