在开关循环中使用select元素的值(javascript)

在开关循环中使用select元素的值(javascript),javascript,select,switch-statement,Javascript,Select,Switch Statement,我试图在我的循环中使用下拉菜单选项的值,但我得到了未捕获的错误,所有这些在filter1中都是未定义的 function filter1() { var x = document.getElementById("filter1").value; switch(x) { case all: getElementsByClassName("1").style.display="none"; break; } cons

我试图在我的循环中使用下拉菜单选项的值,但我得到了未捕获的错误,所有这些在filter1中都是未定义的

function filter1() {
    var x = document.getElementById("filter1").value;
    switch(x) {
        case all: 
        getElementsByClassName("1").style.display="none";
        break;
    } 
    console.log(x);
}
HTML:


所有国家

改用这个

function filter1() {
    var x = document.getElementById("filter1").value;
    switch(x) {
        case "all": 
        getElementsByClassName("1").style.display="none";
        break;
    } 
    console.log(x);
}

您缺少
引号
,无法在
大小写'all'
中分配字符串。请添加一个大于仅执行更改功能的选项

更改
document.getElementsByClassName(“1”)[0]
而不是
getElementsByClassName(“1”)
。因为类名是多重选择器

函数过滤器1(){
var x=document.getElementById(“filter1”).value;
开关(x){
“全部”案例:
console.log('work')
//document.getElementsByClassName(“1”)[0].style.display=“无”;
打破
}
控制台日志(x);
}

所有国家
全体

简短回答:您忘记了“all”周围的引号

这应该起作用:

函数过滤器1(值){
开关(值){
“全部”案例:
//getElementsByClassName(“1”).style.display=“无”;
console.log('all selected');
打破
} 
console.log(值);
}

所有国家
美国

可能您应该使用下一种结构:
函数过滤器1(){
return document.getElementById(“filter1”).getAttributes(“value”).then(function(){
})
}

case“all”
请注意引号。@abhishekkannojia我可以添加这个作为答案。如果你愿意,我可以提到你like@abhishekkannojia谢谢
function filter1() {
    var x = document.getElementById("filter1").value;
    switch(x) {
        case "all": 
        getElementsByClassName("1").style.display="none";
        break;
    } 
    console.log(x);
}