Вот мой код. Почему это не работает?
<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>
Вы запускаете код до загрузки 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();
});
});
Вам не хватает : selected
в селекторе для show ()
- см. документацию jQuery для примера того, как это использовать.
В вашем случае это, вероятно, будет выглядеть примерно так:
$('#'+$('#colorselector option:selected').val()).show();