jQuery数据方法的返回值不会转换为数字

时间:2016-06-28 21:09:53

标签: jquery html

我正在使用JavaScript计算器,我正在使用HTML"数据"重构代码以将其干掉。属性。 (我希望有一个函数用于数据输入,而不是十个函数 - 每个数字一个 - 就像我在v1.0中那样。)我的目标是使用jQuery从数据属性中解析一个整数,但是我'撞墙了。

以下是HTML中的一行按钮:

<div class="row" id ="row3">
  <div data-number=“7” class="button number gray" id="seven">7
  </div>
  <div data-number=“8” class="button number gray" id="eight">8
  </div>
  <div data-number=“9” class="button number gray" id="nine">9
  </div>
  <div data-operand="*" class="button orange operand" id="multiply">&times;
  </div>
</div>

这是一个事件触发器:

$(".number").mouseup(pushNumber);

这是破碎的功能:

var pushNumber = function() {
var num =  $(this).data("number");
var parseNum = parseInt(num);
console.log(parseNum);
console.log(typeof num);
}

当我点击给定按钮时,console.log(parseNum)返回&#34; NaN&#34;,console.log(typeof num)返回&#34;字符串&#34;。根据jQuery的文档,我相信.data应该在这里返回一个数字。所以,所有这些... ... 1.我怎样才能确保.data返回一个数字,而不是字符串?
2.为什么我不能在num?

上使用parseInt方法

这是完整的项目: https://codepen.io/halfalpine/pen/MeJwmV?editors=1010

我已经搜索了尽我所能的相关内容,但我已经做空了。如果这个条目多余,我很抱歉!

2 个答案:

答案 0 :(得分:2)

问题是你的花哨的引用,看看你的控制台是否输出了这些值。

数据数=“8”

应该是

数据数=&#34; 8&#34;

答案 1 :(得分:1)

我认为JoshBerke的回答“钉住”了你的实际问题。

但是我留下了答案,因为它简化了你的功能。

$(".number").on("mouseup", function(){
    var thisNumber = parseInt($(this).attr("data-number")); // Is an integrer here.
    console.log(thisNumber);
)};