2011-08-30 49 views
1

我試圖創建點系統,將做一定點後不同的操作,這是我的JS:點系統 - localStorage的

if (localStorage.points222){ 
    localStorage.points222=Number(localStorage.points222) +5; 
} 
else{ 
    localStorage.points222=0; 
} 

if(localStorage.points222 > 35){ 
    $('#hi').show(); 
} 
else{ 
    $('#hi').hide(); 
} 
document.write("Points: " + localStorage.points222 + ""); 

然後,我有,我想淡入後35分的HTML:

<div id="hi" style="display:none;">30!</div> 

的問題是,IF:

if(localStorage.points222 > 35){ 
     $('#hi').show(); 
    } 
    else{ 
     $('#hi').hide(); 
    } 

是不工作...

只有這樣工作的:

if(localStorage.points222!==35){ 
     $('#hi').show(); 
    } 
    else{ 
     $('#hi').hide(); 
    } 

但我不想#hi,只顯示在35我需要它也從35顯示和高達

+0

'parseInt(localStorage.points222)> 35'怎麼樣? –

+0

@Jared至少在Chromium中,js會正確解釋字符串>進行比較,但是您可能正在爲其他瀏覽器設置一些東西。另外,你可能想要使用規範的'+ localStorage.points222' –

+0

@alex c - 你的意思是在操作系統中使用Chromium? (想知道是否包括Chrome ...)「+」是做什麼的? –

回答

1

我敢打賭,問題是,當地存儲會以字符串形式返回,但您將其視爲一個數字。你需要

if(Number(localStorage.points222) > 35){ 
     $('#hi').show(); 
    } 
    else{ 
     $('#hi').hide(); 
    } 
+0

不知道其他瀏覽器,但字符串/數字比較在Chromium中工作正常 –

+0

@alex只是Chrome,但Firefox, Safari等?而在Chrome中,它似乎不適合我,因爲它是一個字符串,而不是數字。 – Nathan

+0

我在Chrome瀏覽器,但這不起作用:( – Shawn31313