首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在Math.round计算中使用从DOM收集的变量吗?

我可以在Math.round计算中使用从DOM收集的变量吗?
EN

Stack Overflow用户
提问于 2019-06-10 12:34:08
回答 2查看 125关注 0票数 0

我正在从DOM、一个originalPrice和一个discountPrice中得到一些数字。现在我要写出两者之间的%差异。这些数字可能总是不同的。所以我的问题是:

我能计算变量吗?代表:

((originalPrice - discountPrice) / originalPrice) * 100;,然后用Math.round去除小数?当我尝试时,我只得到NaN

这就是我尝试过的:

代码语言:javascript
复制
      var originalPrice = document.querySelector('.original-price')
      var discountPrice = document.querySelector('.from-price')

Math.round((originalPrice - discountPrice) / originalPrice) * 100;

我只得到NaN。我希望差别在%

EN

回答 2

Stack Overflow用户

发布于 2019-06-10 12:40:00

如果您查看MDN,您将看到您正在返回对HTMLelement的引用,在每种情况下,这都与其值不同。

从示例中还不清楚HTML元素是什么,但是您需要获取它的文本或值

票数 0
EN

Stack Overflow用户

发布于 2019-06-10 12:51:26

您要存储在变量中的东西是而不是值,它们是<div>本身( HTMLDivElement对象的实例)。由于这些对象不能被解析为数字,计算它们的尝试将导致NaN

要获得这些值并能够进行计算,您需要:

  1. 从这些div
  2. 将它们解析为Number类型(默认情况下,所有文本内容都是String类型)。

因此,您的变量可以是这样的(正如Prasanth所提到的):

代码语言:javascript
复制
var originalPrice = parseInt(document.querySelector('.original-price').innerText);
// or
var discountPrice = Number(document.querySelector('.from-price').innerText)

如果这些div的内容是保证的是数字(而不是文本),那么您将把适当的数字值存储到变量中,并且肯定能够进行计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56526538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档