> On Apr 27, 2015, at 7:04 PM, Jonas Sicking <jo...@sicking.cc> wrote: > > On Mon, Apr 27, 2015 at 1:57 AM, Glen Huang <curvedm...@gmail.com> wrote: >> Intuitively, querySelector('.class') only needs to find the first matching >> node, whereas getElementsByClassName('.class')[0] needs to find all matching >> nodes and then return the first. The former should be a lot quicker than the >> latter. Why that's not the case? > > I can't speak for other browsers, but Gecko-based browsers only search > the DOM until the first hit for getElementsByClassName('class')[0]. > I'm not sure why you say that it must scan for all hits.
WebKit (and, AFAIK, Blink) has the same optimization. It's a very important optimization. - R. Niwa