improved, possibly faster getelementsbyclass by willu

master
Joey Hess 2008-07-25 01:43:37 -04:00
parent 3640b88f95
commit 89e0de5bc4
2 changed files with 13 additions and 6 deletions

View File

@ -39,18 +39,22 @@ function toggle(s) {
style.display = "none";
}
function getElementsByClass(c) {
function getElementsByClass(cls, node, tag) {
if (document.getElementsByClass)
return document.getElementsByClass(cls, node, tag);
if (! node) node = document;
if (! tag) tag = '*';
var ret = new Array();
var pattern = new RegExp("(^|\\s)"+c+"(\\s|$)");
var els = document.getElementsByTagName('*');
for (i = 0, j = 0; i < els.length; i++) {
var pattern = new RegExp("(^|\\s)"+cls+"(\\s|$)");
var els = node.getElementsByTagName(tag);
for (i = 0; i < els.length; i++) {
if ( pattern.test(els[i].className) ) {
ret[j] = els[i];
j++;
ret.push(els[i]);
}
}
return ret;
}
//-->
</script>
EOF

View File

@ -53,3 +53,6 @@ Looking at the Safari Web Inspector, it believes there is a parse error on line
>> they're filled in with useful defaults.
>> I don't know if it is worth making this change, but it is there if you want it.
>>> Well, it seems to work. Although god only knows about IE. Suppose I
>>> might as well.. --[[Joey]]