DOBON.NETプログラミング道掲示板

No35416 の記事


■35416 / )  style.displayだと効率悪いから違うやり方をしたいです。
□投稿者/ えっぴー 一般人(1回)-(2023/05/11(Thu) 13:00:19)
  • アイコン環境/言語:[javascript] 
    分類:[その他] 

    style.displayだと効率悪いから違うやり方をしたいです。
    以下はhtmlです。
    なぜ効率悪いかというと、
    一つ一つ、
    セレクトごとに、
    document.getElementById('Box1').style.display = "";と、
    document.getElementById('Box1').style.display = "none";
    を書かなければならないからです。
    構文が長くなってしまい、非効率です。
    しかし、document.getElementById自体1つしか書けないのです。
    for文を使う必要があるのです。
    ご教授願えたら幸いです。
    <div class="col-auto my-1">
    <label for="sample">選択してください</label>
    </div>
    <div class="col-auto my-1">
    <select class="form-control" id="sample" onchange="viewChange();">
    <option value="select1">one</option>
    <option value="select2">two</option>
    <option value="select3">three</option>
    </select>
    </div>
    <div class="col-auto my-5">
    <div id="Box1" class="my-5">
    <p>one</p>
    </div>
    <div id="Box2" class="my-5">
    <p>two</p>
    </div>
    <div id="Box3" class="my-5">
    <p>three</p>
    </div>
    </div>
    <script>
    function viewChange(){
    if(document.getElementById('sample')){
    id = document.getElementById('sample').value;
    if(id == 'select1'){
    document.getElementById('Box1').style.display = "";
    document.getElementById('Box2').style.display = "none";
    document.getElementById('Box3').style.display = "none";
    }else if(id == 'select2'){
    document.getElementById('Box1').style.display = "none";
    document.getElementById('Box2').style.display = "";
    document.getElementById('Box3').style.display = "none";
    }
    else if(id == 'select3'){
    document.getElementById('Box1').style.display = "none";
    document.getElementById('Box2').style.display = "none";
    document.getElementById('Box3').style.display = "";
    }
    }

    window.onload = viewChange;
    }
    </script>
    javascript全文を書いていただければ幸いです。
違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -