JavaScript switch语句仅执行默认情况

时间:2015-02-01 20:44:57

标签: javascript switch-statement

我是JavaScript新手并编写了这个简短的脚本来为我的页面正文选择随机背景颜色,但它只是继续执行默认情况。我不知道问题是什么。

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<script>
        function chC(){

            var cl=document.getElementById('demo');
            var colNo=Math.random()*4;
            switch (colNo){
                case 1:{
                    cl.style.background='red';
                }
                case 2:{
                    cl.style.background='yellow';
                }
                case 3:{
                    cl.style.background='pink';
                }
                default :{
                    cl.style.background='orange';
                }
            }

        }
    </script>
    <title></title>
</head>
<body id="demo">
<button type="button" onclick="chC();">change</button>


</body>
</html>

1 个答案:

答案 0 :(得分:1)

Math.random() * 4未返回123,它会返回

之类的内容
3.4111702758818865
3.9287009509280324
1.1707445457577705
1.5766741186380386
2.6374688586220145

你需要围绕它,因为你没有包括零,我想你想上升,但那也包括4,所以谁知道

var colNo = Math.ceil( Math.random()*4 ); // 1-4
// or
var colNo = Math.floor( Math.random()*4 ); // 0-3

....你的开关/箱子有问题,你需要在满足条件时中断

switch (colNo) {
    case 1:
        cl.style.background = 'red';
        break;
    case 2:
        cl.style.background = 'yellow';
        break;
    case 3:
        cl.style.background = 'pink';
        break;
    default:
        cl.style.background = 'orange';
}

FIDDLE