jQuery高速化の為のCSSセレクタの書き方


jQueryのCSS セレクタは書き方次第でスピードがかなり変わってしまうようです。

普段自分が使っている書き方として以下の2つがあるのですが、

$('#contents p'); //1
$('#contents').find('p'); //2

1より2の方が早いとの事。

というのも、セレクタは【右から左】に解釈される為、$(“#contents p”)の様な記述だと全てのp要素を検索して、その中で#contentsが親要素にあたるp要素をjQueryオブジェクトとする、かなり無駄のある動作。

findを使う場合、#contentsの中を検索してからp要素をjQueryオブジェクトとする無駄のない動作になるそう。

1の書き方でも#contentsの中を検索してからp要素をjQueryオブジェクトとしてくれると思っていました…

最近、仕事でもjQueryを書く事が多くなってきたので、もう一度パフォーマンスチューニングの面も含めて勉強し直したいです。。。