2016-10-18 57 views
-1

我無法找到爲什麼我收到用於使用javascript打印數字的NaN爲什麼我在Javascript中解析數字時收到NaN

我在網站上的其他地方重複使用以下代碼,並且正常工作。

有問題的網址是:http://all-american-gold10.mybigcommerce.com/us-silver-eagles/

我的代碼如下:

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(); 

我的代碼需要通過特定的類名發現了一些,做一些數學和一些回吐在了額外的HTML去與它一起。我試圖切換我輸出代碼的方式appendprepend,before & after,但似乎沒有工作?任何理由爲什麼這表現如此奇怪?

+0

請更新您的標記問題 – Geeky

+0

@Pointy這是不正確的。如果你傳遞一個字符串,它會從字面上替換子字符串。 – Xufox

+0

只需添加'console.log(price)',看看你真的有什麼 – adeneo

回答

1

price變量在其中有附加的html。你應該考慮使用一個只包含你需要的值的類來分離元素,而不是別的。作爲速戰速決,這種變化:

var price = $(val).val().replace('$', '').replace(',', '').replace(" ",""); 

得到是我的490值price該網頁,這是你在找什麼的。

+0

我正在尋找的價值是修改後的價格仍然返回NaN與您建議的代碼。 console.log(價格)返回490這是正確的,但我試圖顯示的VAR setPrice這是NaN來自哪裏的值。 – privateer35

+0

由於價格中有html標記,newPrice和setPrice都是NaN。你的直接問題的根源在於:var price = $(val).html()。replace('$','').replace(',','');返回一堆不能正確解析爲一個整數的html標記。考慮清理你的HTML開始,如果你有控制。 –

相關問題