div#オプションの子をいくつか選択ボックスの複数の値に基づいて表示します。複数の選択値に基づいてdiv表示を切り替えます
HTML:関連付ける
<select id="select">
<option selected="selected" value="">- Select -</option>
<option value="4">4th Option</option>
<option value="5">5th Option</option>
<option value="6">6th Option</option>
<option value="7">7th Option</option>
<option value="8">8th Option</option>
<option value="9">9th Option</option>
</select>
<div id="options">
<div class="form-item-a">content a</div>
<div class="form-item-b">content b</div>
<div class="form-item-c">content c</div>
<div class="form-item-d">content d</div>
<div class="form-item-e">content e</div>
<div class="form-item-f">content f</div>
<div class="form-item-g">content g</div>
</div>
ない便利なクラス、私は怖いです。
Iは、値のアレイを有することが期待ながらIは、以下試みたが、単一の値のために働いた:
$('#select').change(function (e) {
// Strange, without pseudo :checked, no event triggered.
var options = $(this).find('option:checked').val();
// Show .form-item-a, if values 4, 5, 6
$('.form-item-a').toggle($('option[value="4, 5, 6"]:selected',this).length > 0);
// Show .form-item-b, if values 5, 6, 7
$('.form-item-b').toggle($('option[value="5, 6, 7"]:selected',this).length > 0);
// etc.
$('.form-item-c').toggle($('option[value="8, 9"]:selected',this).length > 0);
});
ここで配列値を配置する(値=「4、5、6」)であります明らかに間違っていますが、これは私が達成しようとしていることを示しています。なぜなら、それらをjqueryの配列に入れることは考えていないからです。どのように値を配列に入れるか、引数として渡していくつかのdivの可視性を切り替えることができます。 これを達成するためのより良い方法はありますか?
どのようなヒントも、いつものように非常に高く評価されます。
おかげ
擬似セレクタは 'べきである:selected'。 ':checked'はチェックボックス/ラジオのためのものです。 –
ああ、ありがとう、 – swan