接受的答案有幾個缺點:
- 不要在定位在JavaScript代碼標識。使用avoid repeating your code的類和數據屬性。
- 這是一種很好的做法,可以在加載時使用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;
}
這裏的a JSFiddle看到它在行動。
是的。如果你顯示你到目前爲止,你可能會得到一些幫助。更明智的做法是學習Javascript和DOM的基礎知識,並學會自己編寫它,而不是依靠剪切和粘貼代碼。 – lonesomeday 2011-05-28 21:42:28
嗯,我真的只是在尋找一種技術。如果你閱讀我的問題,我不認爲我要求剪切/粘貼一段代碼,只是一種方法。 – Thomas 2011-05-28 21:45:31
該方法是在'change'事件的下拉菜單上創建一個監聽器,然後相應地更改每個'div'元素的'display'樣式屬性。 – lonesomeday 2011-05-28 21:47:21