这是我的代码。为什么它不起作用?
<Script>
$('#colorselector').change(function() {
$('.colors').hide();
$('#' + $(this).val()).show();
});
</Script>
<Select id="colorselector">
<option value="red">Red</option>
<option value="yellow">Yellow</option>
<option value="blue">Blue</option>
</Select>
<div id="red" class="colors" style="display:none"> .... </div>
<div id="yellow" class="colors" style="display:none"> ... </div>
<div id="blue" class="colors" style="display:none"> ... </div>
答案 0 :(得分:72)
您在加载DOM之前运行代码。
试试这个:
直播示例:
$(function() { // Makes sure the code contained doesn't run until
// all the DOM elements have loaded
$('#colorselector').change(function(){
$('.colors').hide();
$('#' + $(this).val()).show();
});
});
答案 1 :(得分:6)
<script>
$(document).ready(function(){
$('#colorselector').on('change', function() {
if ( this.value == 'red')
{
$("#divid").show();
}
else
{
$("#divid").hide();
}
});
});
</script>
为每个值都这样做
答案 2 :(得分:2)
要在选择一个值时显示div,并在从下拉框中选择另一个值时隐藏: -
$('#yourselectorid').bind('change', function(event) {
var i= $('#yourselectorid').val();
if(i=="sometext") // equal to a selection option
{
$('#divid').show();
}
elseif(i=="othertext")
{
$('#divid').hide(); // hide the first one
$('#divid2').show(); // show the other one
}
});
答案 3 :(得分:1)
:selected
的选择器上缺少show()
- 有关如何使用此选项的示例,请参阅jQuery documentation。
在你的情况下,它可能看起来像这样:
$('#'+$('#colorselector option:selected').val()).show();