getElementsByClassName() weirdness
As I’m working on the next edition of Professional JavaScript, I’ve been updating rewriting a large amount of it to include more of the vendor-specific JavaScript extensions. Today I took a look at getElementsByClassName()
, which is implemented in Firefox 3 Beta 2 and the latest builds of WebKit.
This method is specified in HTML 5 as returning a NodeList
of results. Ugh. Yet another performance cost to yet another DOM method. Groaning aside, it appears that the implementation in Firefox 3 Beta 2 actually returns an Array
instead of a NodeList
. I did some digging to figure out if maybe they had changed NodeList
so that it inherited from Array
, but this is not the case. WebKit, on the other hand, does return a NodeList
of results.
And just so everyone knows, it looks like Opera 9.5 is also supporting getElementsByClassName()
. It also correctly returns a NodeList
. Looks Firefox is the only one behind the times on this one, but it is still in beta so hopefully it will be fixed.