2012-09-12 81 views
1

我有如下因素代碼:的Javascript開關不能正常工作

var windowNow = window.localStorage.getItem("windowNow"); 
switch(windowNow) 
{ 
case 1: 
    var link = "http://www.zive.sk/rss/sc-47/default.aspx"; 
    var listviewID = "feedZive"; 
    break; 
case 2: 
    var link = "http://mobilmania.azet.sk/rss/sc-47/default.aspx"; 
    var listviewID = "feedMobil"; 
    break; 
case 3: 
    var link = "http://www.automoto.sk/rss"; 
    var listviewID = "feedAuto"; 
    break; 
} 

,我知道windowNow === 1,因爲我與警報檢查的話,也可以肯定的是它真的是1我if(windowNow == 1) { alert ("Window now is 1");}檢查了它和它的工作。但它不是我的交換機內部工作(與警報檢查它)。

+1

試舉雙quatation的情況下,像這樣的情況下,「1」 – Aravind

+0

謝謝它的工作 – horin

+0

真正驗證該值的使用,如果(windowNow === 1) – Geoff

回答

7

localStorage的項目總是字符串。使用case "1"等。

您的支票的問題是這是一個鬆散的支票,它不檢查數據類型。你應該試過

if(windowNow === 1) { alert ("Window now is 1");} 

注意三重=

+0

工作,感謝 – horin

1

不要開關內聲明的變量。在開關外部聲明它們並在裏面分配。也首先轉換爲整數。

var windowNow = parseInt(window.localStorage.getItem("windowNow"), 10), link, listviewID; 
switch(windowNow) 
{ 
case 1: 
    link = "http://www.zive.sk/rss/sc-47/default.aspx"; 
    listviewID = "feedZive"; 
    break; 
case 2: 
    link = "http://mobilmania.azet.sk/rss/sc-47/default.aspx"; 
    listviewID = "feedMobil"; 
    break; 
case 3: 
    link = "http://www.automoto.sk/rss"; 
    listviewID = "feedAuto"; 
    break; 
default: 
    // default assignment. 
} 
+3

這是一個註釋,不一個答案。 – zzzzBov

+0

@zzzzBov再次檢查。 –

+0

在添加的代碼更改之前,確實與他的問題無關。第一句應該仍然被刪除 – Dameo