Firebugの$$()の落とし穴
Firefox 3.5.6 + Firebug 1.4.5。
ユーザーCSSを作るときにパパッとセレクタの対象になる要素を確認できて便利だな、と思っていたら、疑似セレクタが使えないなどdocument.querySelectorAllとは別物のよう。まあそれくらいなら良いけれど、クラスセレクタがいい加減で使えない。
例えば
<!DOCTYPE html> <title>TEST</title> <p>p <p class="s">s <p class="s1">s1 <p class="foo s2">s2
というページで$$('p.s');
を実行すると、[p.s, p.s1, p.foo]
の3つが返される。sで始まるクラス名を持つ要素を拾っている。$$('p[class="s"]');
なら大丈夫。
Google ChromeのJavaScriptコンソールの$$は、単にdocument.querySelectorAllを呼び出している。Firebugはどうしてそうしないんだろう。