【初心者にもわかりやすい!】JavaScriptの「querySelector」 と 「getElementById」の違い

JavaScriptでDOMの要素を取得する際、querySelectorgetElementById はよく使われるメソッドです。しかし、これらにはいくつかの違いがあります。

getElementById とは?

getElementById は、指定した id 属性を持つ要素を取得するメソッドです。

<例>

const element = document.getElementById("myElement");
console.log(element); // id="myElement" の要素が取得される

このメソッドは idがユニークであることを前提 としているため、複数の要素を取得することはできません。

querySelector とは?

querySelector は、CSSセレクターを使って要素を取得するメソッドです。

<例>

const element = document.querySelector("#myElement");
console.log(element); // id="myElement" の要素が取得される

このメソッドは id だけでなく、クラスやタグ名でも要素を取得できます。

例えば、クラス .myClass を持つ要素を取得する場合

const element = document.querySelector(".myClass");

また、querySelector最初に見つかった1つの要素だけを取得します。複数の要素を取得したい場合は querySelectorAll を使います。

主な違いのまとめ

比較項目getElementByIdquerySelector
取得方法idのみCSSセレクター
戻り値1つの要素最初の1つの要素
複数要素の取得不可「querySelectorAll」を使えば可能
パフォーマンス高速やや遅い(内部でCSSパースがあるため)

結局どちらを使うべき?

どちらもメリット・デメリットあってどっちを使えばいいのと思っているでしょう。私としては使い分けるのがいいと思います。

  • id で要素を取得するなら getElementById が最速でおすすめ
  • クラスやタグで要素を取得する場合は querySelector を使う
  • 複数の要素を取得したい場合は querySelectorAll を使う

使い分けるのめんどくさいな~と思う人は「querySelector」だけでもいいでしょう。ただ、高速化したい場合は積極的に「getElementById」を使ってみてください!
使い分けを意識すれば、より効率的なコードが書けるようになります。

コメント

タイトルとURLをコピーしました