2011-10-22 20 views
0

號:var previousmenu = $("#ipadmenu section.current").data('order') + 1;,這種表達$("#ipadmenu section.current").data('order')等於0計算的,而不是在這個變種將在JavaScript

不幸的是這樣做的結果是01而不是1這是爲什麼?

這例如似乎工作: var previousmenu = $("#ipadmenu section.current").data('order') - 1;並給我-1。

謝謝你的幫助。

回答

3

+有兩個目的。它在字符串的情況下增加了數字和連接的情況。您可以通過鑄造字符串爲數字,在此解決這個問題:

var previousmenu = Number($("#ipadmenu section.current").data('order')) + 1; 
+0

非常優雅的解決方案謝謝! – cmplieger

+0

@SnippetSpace不客氣。 :) 樂意效勞。 –

1

如果一個你「添加」變量是一個字符串,JavaScript的決定,你真正想要做的是將字符串和數字一起(因此「0」+ 1 =「01」);

你需要做的是一樣的東西..

var order = parseInt($("#ipadmenu section.current").data('order'), 10); 
order = order + 1; 
0

因爲它是一個字符串,而不是一個整數,因此在做字符串連接... AAAND歡迎的JavaScript怪誕的世界,因爲你猜對了,「0」 - 1將返回一個數字。

在任何情況下,請使用parseInt(...)+ $("blah").data('order') + 1,如果不感到困惑,您會更開心。

相關問題