在Select上显示/隐藏Div(长列表)
Show/Hide Div (a long list) on Select
在stackoverflow中有许多显示/隐藏选择的解决方案,当选择和div的数量很小时,几乎所有的解决方案都有用。我正在寻找一个解决方案,当选择列表很长,也许超过40,并有相同数量的div。在这种情况下,是否有通用的方法来启用显示/隐藏?但是,如果这上面有很多帖子,请把它们指向我。
这是我的HTML结构…
<div class="form-group">
<label class="col-md-4 control-label" for="changeType">Type of Change</label>
<div class="col-md-4">
<select id="changeTypeSelect" name="changeTypeSelect" class="form-control">
<option value="">--- SELECT ---</option>
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
..
...LOT MORE HERE...
.....
<option value="2">three</option>
</select>
</div>
</div>
<div id="1" class="changeTypeDiv">
<hr>
<h1>ONE</h1>
</div>
<div id="2" class="changeTypeDiv">
<hr>
<h1>TWO</h1>
</div>
...
....LOT MORE HERE.....
...
<div id="3" class="changeTypeDiv">
<hr>
<h1>TWO</h1>
</div>
我需要能够显示一个DIV选择和隐藏其余的。
更新问题
如果我有多个选择选项框,我是否需要复制脚本或编写新函数…这是我试着做的,但它不起作用。免责声明-很明显,我对编码没有太多的见解:)
$(function() {
$(".changeTypeDiv").hide();
$("#changeTypeSelect").change(function(){
$(".changeTypeDiv").hide();
$("#"+$(this).val()).show();
});
$(".addGUIdiv").hide();
$("#addedGUIselect").change(function(){
$(".addGUIdiv").hide();
$)"#"+$(this).val()).show();
});
});
上面没有工作,让我猜测,我可能需要一个新的功能,请帮助。
谢谢Brijesh .
你可以这样做,
$(".changeTypeDiv").hide();
$("#changeTypeSelect").change(function() {
$(".changeTypeDiv").hide();
$(".changeTypeDiv").eq($(this).val() - 1).show();
});
这里我采用基于索引的选择…
小提琴
另一个可能的解决方案是给div元素一个data-attribute
。然后根据选择显示适当的div
您需要在选定的值和div之间创建一个关系。
根据您的注释,因为您已经定义了关系。div的ID
与select的value
相同
可以像
一样使用