在此var:var previousmenu = $("#ipadmenu section.current").data('order') + 1;
中,此表达式$("#ipadmenu section.current").data('order')
等于0.
不幸的是,结果是01而不是1.这是为什么?
这例如似乎有效:
var previousmenu = $("#ipadmenu section.current").data('order') - 1;
并给我-1。
感谢您的帮助。
答案 0 :(得分:3)
+
有两个目的。在字符串的情况下,它添加了数字和连接的情况。您可以通过将字符串转换为数字来解决此问题:
var previousmenu = Number($("#ipadmenu section.current").data('order')) + 1;
答案 1 :(得分:1)
如果你正在'添加'的变量是一个字符串,javascript决定你真正想要做的是将字符串和数字连接在一起(因此“0”+ 1 =“01”);
你需要做的是......
var order = parseInt($("#ipadmenu section.current").data('order'), 10);
order = order + 1;
答案 2 :(得分:0)
因为它是一个字符串,而不是一个整数,因此进行字符串连接... aaand欢迎来到jhacky的JavaScript世界,因为你猜对了,“0” - 1将返回一个数字。
无论如何,使用parseInt(...)
或+ $("blah").data('order') + 1
,如果不是混淆,你会更开心。