我从 DOM 中得到一些数字,一个原始价格和一个折扣价格。现在我想写出两者之间的百分比差异。这些数字总是可以变化的。所以我的问题:
我可以计算变量吗? 例如:
((originalPrice - discountPrice) / originalPrice) * 100;
,然后使用Math.round
除去小数点?
当我尝试时,我只会得到NaN
这是我尝试过的:
var originalPrice = document.querySelector('.original-price')
var discountPrice = document.querySelector('.from-price')
Math.round((originalPrice - discountPrice) / originalPrice) * 100;
我只得到NaN
。我希望%
答案 0 :(得分:0)
如果您查看MDN,则会发现您在每种情况下都返回了对HTMLelement的引用,这与它的值不同。
您的示例尚不清楚HTML元素是什么,但是您需要获取其TEXT或VALUE
答案 1 :(得分:0)
您存储在变量中的东西不是不是值,它们本身就是<div>
(HTMLDivElement
对象的实例)。而且由于无法将这些对象解析为数字,因此尝试计算它们会导致NaN
。
要获取这些值并进行计算,您需要:
div
和Number
类型(默认情况下,所有文本内容均为String
类型。)因此您的变量可能如下所示(如Prasanth Ganesan所述):
var originalPrice = parseInt(document.querySelector('.original-price').innerText);
// or
var discountPrice = Number(document.querySelector('.from-price').innerText)
如果