计算而不是在javascript中添加数字

时间:2011-10-22 00:30:12

标签: javascript

在此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。

感谢您的帮助。

3 个答案:

答案 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,如果不是混淆,你会更开心。