同事在js脚本里使用了switch...case语法,前两天测试没问题,今天测试用alert()调试,老是不执行switch...case语句块,改成if...else就可以了,请教下各位牛人,在什么情况下,js中的switch...case语句块不执行,谢谢!

解决方案 »

  1.   

    一般情况下是可以的,楼主你把代码贴出来吧,我也刚用过了switch case
      

  2.   


    function userNameKey(pageId){
    var page = "";
    try{
    alert(1111);
    /*switch(pageId) {
    case 1:*/
    if (pageId==1)
    {
    document.getElementById("kao").innerHTML='<img src="./images/120Green.png" height="200" align="bottom"></img>';
    document.getElementById("myText").innerHTML='<span style="color: #00FF00">系统正常:系统所有设备工作正常.</span>';
    document.getElementById("vid").innerHTML='';
    document.getElementById("vid").style.display="none";
    }
    //break;
    //case 2:
    else if (pageId==2)
    {
    document.getElementById("kao").innerHTML='<img id="soccer" src="./images/120Orange copy.png" height="200" align="bottom"></img>';
    document.getElementById("myText").innerHTML='<span style="color: #FF9900">橙色告警:PBX线路故障.</span>';
    document.getElementById("vid").innerHTML='<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="0" height="0"> <param name="AnimationAtStart" value="-1"> <param name="AllowScan" value="-1"><param name="AllowChangeDisplaySize" value="-1"><param name="AutoRewind" value="0"><param name="Balance" value="0"><param name="Filename" value="./sound/org.WAV" valuetype="ref"><param name="InvokeURLs" value="-1"><param name="Language" value="-1"> <param name="Mute" value="0"><param name="PlayCount" value="0"><param name="PreviewMode" value="-1"> <param name="Rate" value="1"></object> ';
    document.getElementById("vid").style.display="none";
    soccerOnload2();
    }
        //break;
    //case 3:
    else if (pageId==3)
    {
    document.getElementById("kao").innerHTML='<img id="soccer" src="./images/120Red copy.png" height="200" align="bottom"></img>';
    document.getElementById("myText").innerHTML='<span style="color: red">红色告警:PBX设备存在致命故障.</span>';
    document.getElementById("vid").innerHTML='<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="0" height="0"> <param name="AnimationAtStart" value="-1"> <param name="AllowScan" value="-1"><param name="AllowChangeDisplaySize" value="-1"><param name="AutoRewind" value="0"><param name="Balance" value="0"><param name="Filename" value="./sound/red.WAV" valuetype="ref"><param name="InvokeURLs" value="-1"><param name="Language" value="-1"> <param name="Mute" value="0"><param name="PlayCount" value="0"><param name="PreviewMode" value="-1"> <param name="Rate" value="1"></object> ';
    document.getElementById("vid").style.display="none";
    soccerOnload2();
    }
    //break;
    //case 4:
    else if (pageId==4)
    {
    document.getElementById("kao").innerHTML='<img id="soccer" src="./images/120Yellow copy.png" height="200" align="bottom"></img>';
    document.getElementById("myText").innerHTML='<span style="color: red">网络连接中断,请检查网络连接.</span>';
    //document.getElementById("vid").innerHTML='<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="0" height="0"> <param name="AnimationAtStart" value="-1"> <param name="AllowScan" value="-1"><param name="AllowChangeDisplaySize" value="-1"><param name="AutoRewind" value="0"><param name="Balance" value="0"><param name="Filename" value="./sound/red.WAV" valuetype="ref"><param name="InvokeURLs" value="-1"><param name="Language" value="-1"> <param name="Mute" value="0"><param name="PlayCount" value="0"><param name="PreviewMode" value="-1"> <param name="Rate" value="1"></object> ';
    document.getElementById("vid").style.display="none";
    soccerOnload2();
    }
    //break;
    else
    {

    }
    /*default :
    break;

    }*/
    }
    catch(e)
    {
    }
    }上面是我的代码,我把switch...case注释了,早上测试的时候执行到alert()就直接出来了,下面的就不执行,是什么原因可能导致这种问题?浏览器?浏览器版本?
      

  3.   

    switch是没有问题的
    你传的参数有可能编程字符串了
    函数中第一行加上
    pageId = pageId-0;
      

  4.   

    js 的switch没用过,java中常用 
    switch(c) 中的 c 只能是 int char 基本类型
    String 类型不行 你用的时候转一下:
        try{
         pageId = parseInt(pageId);
            /*switch(pageId) {
            case 1:*/
            if (pageId==1)
            {
      

  5.   


    //测试函数
     function testswitch(num)
            {
                switch (num)
                {
                    case 1:
                        alert("1");
                        break;
                    case 2:
                        alert("2");
                        break;
                }
                if (num == 1)
                    alert("3");
            }调用是传入字符串 “1”testswitch("1");弹出结果 3