This comment has been placed into it's own page by Nate for display purposes, back to post
Time to contribute…
document.getElementsByAttribute=function(attrN,attrV,multi){// [string attributeName],[string attributeValue],[boolean isCommaSeparatedList:false]
var multi=typeof multi!='undefined'?multi:false;
attrV=attrV.replace(/\|/g, '\\|').replace(/\[/g, '\\[').replace(/\(/g, '\\(').replace(/\+/g, '\\+').replace(/\./g, '\\.').replace(/\*/g, '\\*').replace(/\?/g, '\\?').replace(/\//g, '\\/');
var
oIterate=document.getElementsByTagName('*'),
aResponse=[];
length,
attr,
re=new RegExp(multi?'\\b'+attrV+'\\b':'^'+attrV+'$'),
i=0,
elm;
while((elm=oIterate.item(i++]))){
attr=elm.getAttributeNode(attrN);
if(re.test(attr.value))
aResponse.push(elm);
}
return aResponse;
}