追記:ちょっとコードを短くした。 メモ化、正規表現を使わない工夫、メソッド呼び出しを減らすなど、地味に努力した。 けっこう速いと思う。 引数には、順不同で複数のクラス名を渡せる("foo bar"、"bar foo"みたいに)。 if (typeof HTMLElement.prototype.getElementsByClassName!="function") HTMLElement.prototype.getElementsByClassName=function(className) { var names=className.split(/\s+/), all=this.getElementsByTagName("*"), memo={}, ret=[]; for(var i=0,l=all.length,elem,iname,flag;i<l;i++) { elem=all[i