Javascript开关不工作

Javascript switch not working

本文关键字:工作 开关 Javascript      更新时间:2023-09-26

我有以下代码:

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");}检查了它,它起了作用。但它在我的交换机内不起作用(通过警报进行了检查)。

localStorage中的项始终是字符串。使用case "1"等。

检查的问题是,这是一个松散的检查,不会检查数据类型。你应该试试

if(windowNow === 1) { alert ("Window now is 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.
}