LoginSignup
8
10

More than 3 years have passed since last update.

getElementById()とgetElementsByClassName()の違い

Posted at

getElementById()とgetElementsByClassName()の違い

getElementById()とgetElementsByClassName()の違いを自分がわかるように、サンプルプログラムを作りました。
コピー&ペーストで利用可能です。

title


<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8" />
    <title>getElementById()とgetElementsByClassName()の違い</title>
  </head>
  <body>
    <div>↓getElementById()を使った実験</div>
    <div>getElementsById()は引数で指定したId名のエレメントを取得する。</div>
    <div id="quiz1">第1問!</div>
    <div id="quiz2">第2問!</div>
    <div id="quiz3">なし</div>
    <div id="quiz4">第4問!</div>
    <div id="quiz4">第5問!</div>
    <div></div>

    <script>
        var quiz1 = document.getElementById('quiz1');
        var quiz2 = document.getElementById('quiz2');
        var quiz3 = document.getElementById('quiz3');
        var quiz4 = document.getElementById('quiz4');
        var quiz5 = document.getElementById('quiz5');
        quiz2 = "ああああ";                     //quiz2のinnerHTMLに代入していないので、「ああああ」は表示されない
        quiz3.innerHTML = "第3問!";            //これが正しい。
        quiz4.innerHTML = quiz1.innerHTML;      //これも正しい。
        quiz5[0].innerHTML = "ああああ";        //間違い。getElementsByClassName()の書き方。
    </script>


    <div>↓getElementsByClassName()を使った実験</div>
    <div>getElementsByClassName()は引数で指定したclass名のエレメントを配列として取得する。</div>
    <div class="quiz2_1">第1問!</div>
    <div class="quiz2_2">第2問!</div>
    <div class="quiz2_3">なし</div>
    <div class="quiz2_4">第4問!</div>    
    <div class="quiz2_4">第5問!</div>
    <div class="quiz2_4">第6問!</div>

    <script>
        var quiz2_1 = document.getElementsByClassName('quiz2_1');
        var quiz2_2 = document.getElementsByClassName('quiz2_2');
        var quiz2_3 = document.getElementsByClassName('quiz2_3');
        var quiz2_4 = document.getElementsByClassName('quiz2_4');
        quiz2_2 = "ああああ";               //間違い。
        quiz2_3.innerHTML = "第3問!"       //間違い。getElementsByClassName()で取得するのは、エレメントの配列であるため
        quiz2_4[0].innerHTML = "第3問!"    //正解。
        quiz2_4[1].innerHTML = "第3問!"    //正解。
        //第6問!の表示は、そのまま表示されていることに注意。

    </script>
  </body>
</html>
8
10
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
8
10