<script type="text/javascript">
      
        function btn_Click()
        {
            var value=parseInt(document.getElementById("txt").value);
var c=0;
            if(value>10){
c=1;
}else{
c=2;
}
            switch(c)
            {
                case 1:alert(">10");
                break;
                case 2:alert("<10");
                break;
                default:alert("==10");
            }
        }
      
    </script>
</head>
<body>
<input type="text" id="txt" /><input type="button" value="click" id="btn1" onclick="btn_Click()" />
</body>

解决方案 »

  1.   

    case 后面只能跟“常量”!!!
      

  2.   

    其实lz滴代码更适合用if...else if...else判断!如果一定要用switch...case只能这么写!L@_@K
    <script type="text/javascript">
          
            function btn_Click()
            {
                var value=parseInt(document.getElementById("txt").value);
                
                if (isNaN(value))
                {
                    alert("非法输入");
                    return;
                }            switch(value>10)
                {
                    case true:
                        alert(">10");
                        break;
                    case false:
                        switch (value<10)
                        {
                            case true:
                                alert("<10");
                                break;
                            default:
                                alert("==10");
                                break;
                        }
                        break;
                }
            }
          
        </script>
    </head>
    <body>
    <input type="text" id="txt" /><input type="button" value="click" id="btn1" onclick="btn_Click()" />
    </body>
      

  3.   

    to:yixianggao 
    感谢你的分享,我只是在学习一种语言,所以想仔细深入的理解它.我知道if else可以做上面的事情.
    请看下面这篇文章的最下面.这里却是使用的变量.
    http://book.csdn.net/bookfiles/110/1001103369.shtml
      

  4.   

    switch表达式通常为整型值或字符型值,case中常量的类型应与之对应
    这个就是switch的用法,只能用1#的那写法
      

  5.   

    呵呵,文章俺看了,其中滴所谓变量其实还是常量(至少在执行case判断前就确定了,而不是在执行case时才做判断)!这主要是由于js中没有const关键字所致!case 后面只能跟“常量”!!!
    俺这句话没说错,哈
      

  6.   

    to chinmo1楼写法根本进不了default:alert("==10");而且if与switch混用本身就是画蛇添足,用if就够了!理解语义远比会使用语法重要滴多!
      

  7.   

    你不要被那个变量误导了!!
    在case中的”常量”位置允许是常数表达式,但不允许是变量表达式
    你所用的就是变量表达式,如果你改成常数表达式
    <script   type="text/javascript"> 
                
                    function   btn_Click() 
                    { 
                            var   value=parseInt(document.getElementById("txt").value); 
                            switch(value) 
                            { 
                                    case   value=20:alert("> 10"); 
                                    break; 
                                    case   value=10:alert(" <10"); 
                                    break; 
                                    default:alert("==10"); 
                            } 
                    } 
                
            </script> 这样就可以!如果这样写的话也就是相当与
    <script   type="text/javascript"> 
                
                    function   btn_Click() 
                    { 
                            var   value=parseInt(document.getElementById("txt").value); 
                            switch(value) 
                            { 
                                    case   20:alert("> 10"); 
                                    break; 
                                    case   10:alert(" <10"); 
                                    break; 
                                    default:alert("==10"); 
                            } 
                    } 
                
            </script> 
      

  8.   

    to truelove12如果没有类C语言基础,最好先翻翻C语言基础,如果直接学习js,俺觉得困难多多!
      

  9.   

    to yixianggao呵呵,是进不了,不要太认真,给的只是思路!我很少说真正答案的,给思路是有助他加深印象,具体情况就要看他怎么去调试
    当然,你说的if与switch混用本身就是画蛇添足,这个一点没错!
      

  10.   

    我也说了:
    在case中的”常量”位置允许是常数表达式,但不允许是变量表达式 
      

  11.   

    JS的switch方面的确很弱,还要加一堆垃圾的break来中断,比不上VBS的select case,可惜。