不首先选择所有选项值

我有一个脚本,可以根据所选的下拉选项显示/隐藏div。

在用户在下拉列表中进行选择之前,我需要隐藏除第一个div之外的所有div。

根据下面的脚本,如何从除第一个选项之外的所有选项中获取值,这样我可以隐藏除第一个div之外的所有div?

$('.dd-show-hide').find('option:not(:first)').val().hide(); $('.dd-show-hide').change(function(){ $(this).find('option').each(function(){ $('#' + this.value).hide(); }); $('#' + this.value).show(); }); 

  Choose Show Div 1 Show Div 2    

那么你可以使用first选择器而not方法:

 $('.drop-down-show-hide').not(':first').hide(); 

或者触发更改事件,不需要使用each方法。

 var $divs = $('.drop-down-show-hide'); $('.dd-show-hide').change(function(){ $divs.hide().filter('[id='+this.value+']').show(); }).change(); 

试试这个。 你几乎拥有它:

 $('.dd-show-hide').find('option').each(function(){ if ('div1' != this.value) { $('#' + this.value).hide(); } else { $('#' + this.value).show(); } }); 

一般来说,当我必须在JQuery中“隐藏除_之外的所有东西”时,我发现将它们全部隐藏起来更方便,然后显示我想要的那个。 这隐藏了第一个:

 $('.drop-down-show-hide').hide().first().show(); 

这基于当前选择的选项隐藏:

 $('.drop-down-show-hide').hide().filter('#' + $('.dd-show-hide').val()).show(); 

这基于第一个选项隐藏(即使不一定是现在选择的选项)

 $('.drop-down-show-hide').hide().filter('#'+$('.dd-show-hide option:first').val()).show() 

您不需要逐个查看ID。 仅显示下拉列表中选定的一个并隐藏其他内容:

 $('.dd-show-hide').change(function() { $('.drop-down-show-hide').hide().filter('#' + this.value).show(); });