2016-07-25 5 views
0

私は、選択すると、適切なセクションを表示するはずの選択オプションがあります。デフォルトでは、すべてがdisplay:noneに設定されています。私のCSSクラスをオブジェクトとして参照していますか?

この例では、6月が選択されている場合は、クラスがjuneのすべてのdivが表示されます。

$('#list').change(function() { 
    if ($(this).val() == "june") { 
     $('.june').css('display', 'block') 
    } 
}); 

コードは必要なとおりに動作します。しかし、私はこれをさらに効率的に書いていきたいと思います。私は月をさらに追加する予定です。そのために、どのように私はこの線に沿って何かをやって行くだろう:thischosenmonthは、ユーザーが選択した月と一致

$('#list').change(function() { 
    if ($(this).val() == { 
      thischosenmonth 
     }) { 
     $('.{thischosenmonth}').css('display', 'block') 
    } 
}); 

+1

jQueryセレクタ内で変数を使用することができます。 $( '。' + userInput).css( 'display'、 'block') どのようにユーザー入力を取得していますか? – Hodrobond

+2

'$( '。' + $(this).val())。あなたの変更イベントの中でのshow();それぞれのためにIFを使用する代わりに?彼らが 'class = 'june month'のように同じクラスを持っていれば、' $( '。month')を呼んでhide()を呼び出すことができます。 –

答えて

2

あなたはdisplay:none;その後、(私はそのためのshow()を使用します)、対応する月の選択のためのdisplay:block;を設定するには、ドロップダウンの値を使用して、(私はそのためのhide()を使用します)最初にすべての月を設定することができます。だから、HTMLは(明らかにもっとヶ月で)このような何かを見ている場合:

<select id='sel-month'> 
    <option disabled selected>Choose a Month</option> 
    <option value='january'>January</option> 
    <option value='february'>February</option> 
    <option value='march'>March</option> 
</select> 
<div class='month january'>This is the January box.</div> 
<div class='month february'>This is the February box.</div> 
<div class='month march'>This is the March box.</div> 

ドロップダウンが変更されたときは、該当月の情報を表示するには、このようなスクリプトを使用することができます。

$('#sel-month').change(function(){ 
    $('.month').hide(); 
    $('.' + $(this).val()).show(); 
}); 

ここですfiddle:https://jsfiddle.net/1yk44zbq/

関連する問題