我正在使用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)
返回&#34; NaN&#34;,console.log(typeof num)
返回&#34;字符串&#34;。根据jQuery的文档,我相信.data应该在这里返回一个数字。所以,所有这些... ...
1.我怎样才能确保.data返回一个数字,而不是字符串?
2.为什么我不能在num?
这是完整的项目:
https://codepen.io/halfalpine/pen/MeJwmV?editors=1010
我已经搜索了尽我所能的相关内容,但我已经做空了。如果这个条目多余,我很抱歉!
答案 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);
)};