我得到NaN
作为结果,因为我的jquery乘以看起来像"204,3 * 3"
的数字
我该如何处理?
我无法改变价格,所以我该怎么办?
"234 * 2"
只要数字','
NaN
我就会正常工作。
<script type="text/javascript">
$('.quantity').keyup(function () {
var parent = $(this).parent(),
price = parent.find('.price').html(),
quantity = parent.find('.quantity').val(),
result = price * quantity;
parent.find('.price2').html(result);
});
</script>
<span class="price">69,9</span>
<input type="text" class="quantity">
<span class="price2">69,9</span>
<span class="total">Total:</span>
<div class="line2"></div>
Check my JSfiddle everything is there
感谢任何形式的帮助
答案 0 :(得分:4)
Javascript使用北美数字格式,这意味着,
用作thousands seperator
而.
用于decimal separator
。
您的问题有两个解决方案:
1000.25
1.000,25
变为1000.25
String.prototype.replace
将是您第二选择的朋友。
答案 1 :(得分:1)
您正在尝试乘以字符串...使用parseFloat()和replace()方法,如jsFiddle更新here
中所示 $('.quantity').keyup(function () {
var parent = $(this).parent(),
price = parent.find('.price').html().replace(',', '.'),
quantity = parent.find('.quantity').val().replace(',','.'),
result = parseFloat(price) * parseFloat(quantity);
parent.find('.price2').html(result);
});
答案 2 :(得分:1)
你在这里乘以两个字符串而不是数字..
使用 parseInt with radix
转换它们OR
使用 parseFloat
转换它们更改此行
result = price * quantity;
以强>
result = parseInt(price,10) * parseInt(quantity,10);
OR
result = parseFloat(price) * parseFloat(quantity);