我正在开发一个 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">×
</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)
返回“NaN”,而 console.log(typeof num)
返回“string”。根据 jQuery 的文档,我认为 .data 应该在此处返回一个数字。所以,综上所述...
1. 如何确保.data返回数字而不是字符串?
2. 为什么我不能对num使用parseInt方法?
这是完整的项目:
https://codepen.io/halfalpine/pen/MeJwmV?editors=1010
我已尽我最大的努力寻找相关的内容,但未能找到。如果此条目是多余的,我深表歉意!
最佳答案
问题是你的有趣的引号,看看你的控制台,它正在输出它们的值。
数据编号=“8”
应该是
数据编号=“8”
关于jquery - jQuery 数据方法的返回值不会转换为 Number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38086348/