我正在从DOM、一个originalPrice和一个discountPrice中得到一些数字。现在我要写出两者之间的%差异。这些数字可能总是不同的。所以我的问题是:
我能计算变量吗?代表:
((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。我希望差别在%
发布于 2019-06-10 12:40:00
如果您查看MDN,您将看到您正在返回对HTMLelement的引用,在每种情况下,这都与其值不同。
从示例中还不清楚HTML元素是什么,但是您需要获取它的文本或值
发布于 2019-06-10 12:51:26
您要存储在变量中的东西是而不是值,它们是<div>本身( HTMLDivElement对象的实例)。由于这些对象不能被解析为数字,计算它们的尝试将导致NaN。
要获得这些值并能够进行计算,您需要:
div和Number类型(默认情况下,所有文本内容都是String类型)。因此,您的变量可以是这样的(正如Prasanth所提到的):
var originalPrice = parseInt(document.querySelector('.original-price').innerText);
// or
var discountPrice = Number(document.querySelector('.from-price').innerText)如果这些div的内容是保证的是数字(而不是文本),那么您将把适当的数字值存储到变量中,并且肯定能够进行计算。
https://stackoverflow.com/questions/56526538
复制相似问题