2015年5月13日水曜日

脱jQueryするにはdocument.querySelector()もあるけど状況どう?

AngularJS内蔵のjqLiteを使うことにしたが、DOMElementを取得するのにdocument.getElementById()というのは使いにくい場合もある。

ところで、jQueryライクなものとしてdocument.querySelector()もあるけど、状況はどうなのか?と。

Can I use... Support tables for HTML5, CSS3, etc

な〜んだ。全然大丈夫じゃん!なら、もはやjQueryも必須ではないし、getElementById()も要らないじゃん!と思ったが…

document.querySelector - Web API インターフェイス | MDN

【訳注: 上記ではクラスセレクタを用いた検索を例示していますが、この様な単発のクラス名の場合は getElementsByClassName() メソッドを用いた方が高速な動作となります。また、ID セレクタ ( # ) を対象とする検索も可能ですが、その場合は getElementById() メソッドを用いた方が高速です。対象セレクタが流動的で有る場合や、または隣接セレクタなどによるコンビネーションセレクタでの複雑な検索の場合に於いて、querySelector() や querySelectorAll() は真価を発揮します。】

ということなので、要らないということは無いようだ。

つまり、複雑なクエリ条件の場合はquerySelector()、単純な場合はgetElementById()とかgetElementsByClassName()と使い分けをした方が良いと。