接受的答案有几个缺点:
- 不要在 JavaScript 代码中定位 ID。使用类和数据属性来避免重复您的代码。
- 在加载时使用 CSS 隐藏而不是使用 JavaScript 是一种很好的做法——以支持非 JavaScript 用户,并防止加载时显示隐藏闪烁。
考虑到上述情况,您的选项甚至可以有不同的值,但切换相同的类:
<select class="div-toggle" data-target=".my-info-1">
<option value="orange" data-show=".citrus">Orange</option>
<option value="lemon" data-show=".citrus">Lemon</option>
<option value="apple" data-show=".pome">Apple</option>
<option value="pear" data-show=".pome">Pear</option>
</select>
<div class="my-info-1">
<div class="citrus hide">Citrus is...</div>
<div class="pome hide">A pome is...</div>
</div>
jQuery:
$(document).on('change', '.div-toggle', function() {
var target = $(this).data('target');
var show = $("option:selected", this).data('show');
$(target).children().addClass('hide');
$(show).removeClass('hide');
});
$(document).ready(function(){
$('.div-toggle').trigger('change');
});
CSS:
.hide {
display: none;
}
这是一个 JSFiddle来查看它的运行情况。