为什么我在Javascript中解析数字时收到NaN
我不明白为什么我会收到一个为什么我在Javascript中解析数字时收到NaN,javascript,jquery,html,Javascript,Jquery,Html,我不明白为什么我会收到一个NaN,因为我用javascript打印了一个数字 我使用的以下代码在网站的其他地方重复了一遍,效果很好 该网址为: 我的代码如下: function setCheckPrice() { $('.NormalPrice').each(function(key, val) { var price = $(val).html().replace('$', '').replace(',', ''); var newPrice = parseInt(pric
NaN
,因为我用javascript打印了一个数字
我使用的以下代码在网站的其他地方重复了一遍,效果很好
该网址为:
我的代码如下:
function setCheckPrice() {
$('.NormalPrice').each(function(key, val) {
var price = $(val).html().replace('$', '').replace(',', '');
var newPrice = parseInt(price) * .03;
var setPrice = Math.floor(price - newPrice);
var credit = '<small style="font-size: 20px !important;"> - credit card price</small>';
var check = '<p><em class="new-price">$' + setPrice +'<small style="font-size: 20px !important;"> - check price</small></em></p>';
$(val).append(credit);
$(val).prepend(check);
})
};
setCheckPrice();
函数setCheckPrice(){
$('.NormalPrice')。每个(函数(键,值){
var price=$(val.html().replace(“$”,”).replace(“,”,”);
var newPrice=parseInt(价格)*.03;
var setPrice=数学下限(价格-新价格);
var信用='-信用卡价格';
var检查=“$”+setPrice+”-检查价格”;
美元(val)。追加(贷方);
$(val).前置(检查);
})
};
setCheckPrice();
我的代码获取一个由特定类名找到的数字,做一些数学运算,然后返回一些额外的html。我试着用
附加
,前置
,前
,后
切换输出代码的方式,但似乎都不起作用?这有什么奇怪的原因吗?这个price
变量中有额外的html。您应该考虑将单独的元素与包含您需要的值的类分开,而没有别的。作为快速解决方案,此更改:
var price = $(val).val().replace('$', '').replace(',', '').replace(" ","");
请在该页面上给我一个490的
price
,这就是您要找的。请用您的标记更新问题too@Pointy那不是真的。如果你传递一个字符串,它会逐字替换子字符串。只需添加console.log(price)
,看看你真正得到了什么got@Xufox天哪,你是对的;我一定是梦见读到了其他的东西(但似乎是真的!):)是否有前导空格需要删掉?我要寻找的是修改后的价格,它仍然返回一个NaN和您建议的代码。log(price)返回490,这是正确的,但是我试图显示var setPrice的值,这是NaN的来源。因为price中有html标记,所以newPrice和setPrice都是NaN。当前问题的根源是:var price=$(val.html().replace(“$”,”).replace(“,”,”);返回一组无法正确解析为整数的html标记。如果你已经控制了HTML,请考虑清理它。