素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

getElementByAttributeみたいなものを作った

ページが見つかりません | Mozilla Developer Networkを見てふと思いつく。

HTMLElement.prototype.getElementsByAttribute=function(attrib,value){

var xpath='//*[@'+attrib+(value=='*'?'':'="'+value+'"')+']';

var xRes=document.evaluate(xpath,this,null,7,null);
var res=new Array;
for(var i=0;i<xRes.snapshotLength;i++)res.push(xRes.snapshotItem(i));

return res;
}
document.getElementsByAttribute=function(attrib,value){
return HTMLElement.prototype.getElementsByAttribute.call(document.documentElement,attrib,value)
}

document.getElementsByAttribute('class','*')

のような感じで使う。
パチモノなので結果はNodeListではなくただの配列っていうのに気をつけてればそれなりに使える感じ。

本物がXULでしか使えないのはもったいないなぁ。