LoginSignup
11
11

More than 5 years have passed since last update.

1つの要素を表示して、それ以外非表示

Last updated at Posted at 2014-12-19

取り急ぎ。

HTML

  <!-- 選択 -->
  <select id="select">
    <option value="">ー</option>
    <option value="1" id="value1">選択1</option>
    <option value="2" id="value2">選択2</option>
  </select>
  <!-- 開閉セットbox -->
  <div id="display">
    <div id="box1" style="display: none;"><p>選択1でここが表示</p></div>
    <div id="box2" style="display: none;"><p>選択2でここが表示</p></div>
  </div>


  • display:none;はcssのclassやjsに書くと、display:none;が読み込まれるまでのタイムラグでちらっと表示されるのが嫌だったので、htmlに直書き。
JQuery
$(function(){
    /* selectボックスの選択が変更したら中の処理を実行 */
    $('#select').change(function(){
        /* 選択したselectボックスのvalue値を取得して、変数valに入れる */
        var val = $(this).val();
        /* 変数valの値ごとに、処理をswichでふりわけ */
        switch (val) {
            case '1':
                /* #box1を表示 */
                $('#box1').show();
                /* divのidに「box」を含むid名がついているもので、box1じゃないものは非表示 */
                $('div[id^="box"]:not("#box1")').hide();
            break;
            case '2':
                /* #box2を表示 */
                $('#box2').show();
                /* divのidに「box」を含むid名がついているもので、box2じゃないものは非表示 */
                $('div[id^="box"]:not("#box2")').hide();
            break;
            /* caseで設定した以外の処理 */
            default:
                /* divのidに「box」を含むid名がついているものは非表示 */
                $('div[id^="box"]').hide();
        }
    });
});
  • value値について value値に入る値は「文字列」として入ってくる。 今回はvalue値を文字列の1,2で割り振っているので、文字列を示す為に、case '1' のようにシングルクオーテーションで囲いました。
11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11