我创建了代码,只在从下拉列表中选择类别之后才显示div,我在css中创建了div display:none,并在jquery中使用该代码和它的工作方式显示了divdisplay:none。
$(' select[name=catId]').change(function(e){
if ($(' select[name=catId]').val() == '32'){
$('#photo-upload').hide();
}else{
$('#photo-upload').show();
}
});但是这样,它对选项值32起作用,但我希望它能适用于许多值,我尝试过这样做,但它不起作用。
$(' select[name=catId]').change(function(e){
if ($(' select[name=catId]').val() == '32' '45' 67' 89' 122'){
$('#photo-upload').hide();
}else{
$('#photo-upload').show();
}
});请指导我如何使它隐藏为其他值也不只是32,现在它为我工作的只是一个价值。
更新:这是我的html结构。
<select name="catId" id="catId">
<option value="1">England</option>
<option value="2">Russia</option>
<option value="3">Antartika</option>
<option value="4">Maldives</option>
<option value="32">Alaska</option>
<option value="45">Seychelles</option>
<option value="67">Georgia</option>
<option value="89">Honduras</option>
<option value="7">Lebanon</option>
<option value="8">Switzerland</option>
<option value="122">Germany</option>
</select>
<div id="photo-upload">photo uploader here</div>这是一个烦躁的演示:http://jsfiddle.net/Bk54E/
发布于 2014-07-17 05:06:18
像这样使用OR操作符
$("select[name='catId']").change(function(e){
var res = $(this).find("option:selected").val() ;
if (res == '32' || res == '45' || res == '67' || res == '89' || res == '122'){
$('#photo-upload').hide();
}else{
$('#photo-upload').show();
}
});小提琴
发布于 2014-07-17 05:07:38
使用
在jquery中使用inArray
$.inArray( $(' select[name=catId]').val(), [ '32', '45', '67', '89', '122' ] );或
$.inArray( this.value , [ '32', '45', '67', '89', '122' ] );您的JS代码将显示
$("select[name='catId']").change(function(){
if( $.inArray(this.value, ['32', '45', '67', '89', '122' ] )!=-1){
$('#photo-upload').hide();
}else{
$('#photo-upload').show();
}
});演示
发布于 2014-07-17 05:09:07
最好用这样的东西。
if(['32', '45', '67', '89', '122'].indexOf($(' select[name=catId]').val())>-1){
//hide
}因此,基本上,如果其中任何一个都等于select's value条件,则为真。
https://stackoverflow.com/questions/24795246
复制相似问题