2

私は次のコードを持っています:

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");}います。しかし、それは私のスイッチの中で機能していません(アラートでチェックしました)。

4

2 に答える 2

8

の項目localStorageは常に文字列です。使用case "1"など。

チェックの問題は、データ型をチェックしない緩いチェックであるということです。やってみるべきだった

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

トリプルに注意してください=

于 2012-09-12T15:11:05.553 に答える
2

スイッチ内で変数を宣言しないでください。スイッチの外側でそれらを宣言し、内側で割り当てます。また、最初に整数に変換します。

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.
}
于 2012-09-12T15:11:24.613 に答える