2015-12-28 44 views
-1

我正在嘗試開發一個網絡應用程序,它是一個在http://101drums.com/flam.html的打鼓引物。 這些課程以JPG圖像的形式顯示,並伴隨伴奏音軌一起播放。 我希望我的下一個按鈕增加一個計數器來加載下一課。課程標題,分數和曲目位於名爲lesson1("title","score" etc)lesson2("title",etc)的對象數組中。所以我需要在課程結束時更改數字。我正在嘗試這個,但它不起作用。你能幫我嗎?如何遞增計數器並將結果附加到字符串以返回對象名稱?

p = integer.valueOf(localStorage.lessonNGS); 
p = p + 1; 
n = string.valueOf(p); 
localStorage.setItem("lessonNGS", n); 
var lesson = "lesson" + localStorage.lessonNGS; 
+4

標題應該描述實際問題,而不是您嘗試解決問題時的體驗。 – Teemu

+3

嘗試並在問題標題中解釋你的問題。目前的標題沒有告訴讀者,大多數人會跳過閱讀這個問題。 –

+0

看着你的來源。構建字符串時不要使用'eval'。 'Uncaught ReferenceError:lessonundefined is not defined'是您網頁上的錯誤。 – epascarello

回答

0

您應該使用localStorage.getItemparseInt

var p = parseInt(localStorage.getItem('lessonNGS'), 10) || 0; 
++ p; 
localStorage.setItem('lessonNGS', p); 
+0

這工作。謝謝。我不知道什麼| | 0;是在做?你能告訴我還是告訴我在哪裏看。 – Phil

+0

這是一個後備。所以如果'localStorage.getItem('lessonNGS')'還不存在('null'或'undefined'),它將回退到'0'。 – Louy

+1

非常感謝。 – Phil

0

有兩點需要注意:

  1. 使用parseInt解析字符串轉換爲整數
  2. 你不需要轉換爲字符串,存儲到localStorage JavaScript時可以處理的轉換,以及當將整數連接到「課程」字符串。

此代碼應工作:

p = parseInt(localStorage.lessonNGS, 10); 
p = p + 1; 
localStorage.setItem("lessonNGS", p); 
var lesson = "lesson" + localStorage.lessonNGS; 
+0

你確定'localStorage.lessonNGS'可以在所有瀏覽器中訪問嗎?它工作在chrome中,但[MDN]上找不到任何關於它的信息(https://developer.mozilla.org/en-US/docs/Web/API/Storage)。 – Louy

+1

parseInt應始終包含一個基數,例如parseInt(foo,10)。 – djechlin

+0

@Louy - 'localStorage'是HTML5的一部分,它應該在支持它的所有瀏覽器上都可用。 – Cristik

相關問題