简体   繁体   English

根据选择选项显示/隐藏div

[英]Show/Hide div based on select option

Here's my code : 这是我的代码:

HTML : HTML

<Select id="colorselector">
   <option value="red-1">Red</option>
   <option value="yellow-2">Yellow</option>
   <option value="blue-2">Blue</option>
   <option value="black-1">Black</option>
</Select>
<div id="-1" class="colors" style="display:none"> Div1... </div>
<div id="-2" class="colors" style="display:none"> Div2.. </div>

JS : JS

$(function() {
    $('#colorselector').change(function(){
        $('.colors').hide();
        $('#' + $(this).val()).show();
    });
});

What I want : when I select an option that contains "-1" the first div will appears, and the second div will disappear. 我想要的是:当我选择一个包含"-1"的选项时,第一个div将出现,第二个div将消失。 And If I select an option that contains "-2" the firs div will disappear, and the second one will appears. 而且,如果我选择一个包含"-2"的选项,则firs div将消失,而第二个将出现。

Use split() to get the number 使用split()获取数字

 $(function() { $('#colorselector').change(function() { $('.colors').hide(); $('#-' + $(this).val().split('-')[1]).show(); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <Select id="colorselector"> <option value="red-1">Red</option> <option value="yellow-2">Yellow</option> <option value="blue-2">Blue</option> <option value="black-1">Black</option> </Select> <div id="-1" class="colors" style="display:none">Div1...</div> <div id="-2" class="colors" style="display:none">Div2..</div> 

Try this: 尝试这个:

JS: JS:

$("#colorselector").change(function(){
    if((this.options[this.selectedIndex].value).indexOf("-1") > -1) {
        $("#-2").hide();
        $("#-1").show();
    }
    else {
        $("#-1").hide();
        $("#-2").show();
    }
});

Demo. 演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM