Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据下拉值切换多个元素的可见性_Javascript_Jquery_Toggle - Fatal编程技术网

Javascript 如何根据下拉值切换多个元素的可见性

Javascript 如何根据下拉值切换多个元素的可见性,javascript,jquery,toggle,Javascript,Jquery,Toggle,我有以下HTML元素: #categoryid is a dropdown/select #addFoo is a button #removeFoo is button #Foo is a div #Bar is a div 我正在使用以下脚本根据下拉列表中选择的内容更改这些元素的可见性: $('#categoryid').change(function () { var category = $(this).val(); if (category === 'Foo') {

我有以下HTML元素:

#categoryid is a dropdown/select
#addFoo is a button
#removeFoo is button
#Foo is a div
#Bar is a div
我正在使用以下脚本根据下拉列表中选择的内容更改这些元素的可见性:

$('#categoryid').change(function () {
    var category = $(this).val();
    if (category === 'Foo') {
        $('#addFoo').removeClass('invisible');
        $('#removeFoo').removeClass('invisible');
        $('#Foo').removeClass('invisible');
    }
    else if (category === 'Bar') {
        $('#Bar').removeClass('invisible');
    }

    if (category !== 'Foo') {
        $('#addFoo').addClass('invisible');
        $('#removeFoo').addClass('invisible');
        $('#Foo').addClass('invisible');
    }

    if (category !== 'Bar') {
        $('#Bar').addClass('invisible');
    }
});
CSS


有更好的方法吗?

您可以为这些
foo
元素提供一个公共类名
foo
(或
data-
属性,以您喜欢的为准):

$('#categoryid')。更改(函数(){
如果(this.value==='Foo'){
$('.foo').removeClass('invisible');
$('#Bar').addClass('不可见');
}else if(this.value==='Bar'){
$('#Bar')。removeClass('不可见');
$('.foo').addClass('不可见');
}
}).trigger(“change”);//用于演示目的
。不可见{
显示:无;
}
div{/*用于演示目的*/
高度:50px;
线高:50px;
文本对齐:居中;
颜色:#fff;
背景:道奇蓝;
}

福
酒吧
福!
酒吧!
加富!

移除Foo当然!使用jquery和或

您可以直接使用jquery中的
show()
hide()
slideUp()
slideDown()
方法:

$('#divid').show();

下次,如果您发布示例
HTML
,而不是列出元素的类型,那就太好了…:)@A.Wolff我很好奇如何使用它来改进这段代码…@TJ也许@dotnetN00b只是在事件处理程序绑定后触发更改事件。顺便说一句,很抱歉现在很忙,没有时间写一个“正确”的答案,你仍然可以给自己写一个描述性的答案,并接受它来标记你的问题已经解决
$('#divid').show();