summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-07-25 01:43:37 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-07-25 01:43:37 -0400
commit89e0de5bc46f87231a3447acb8609641cc9162aa (patch)
tree957d51322f3d81189fe43fd5b91b8ab812adaa95 /IkiWiki/Plugin
parent3640b88f9575882373eac93a47815d870e54d366 (diff)
improved, possibly faster getelementsbyclass by willu
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r--IkiWiki/Plugin/toggle.pm16
1 files changed, 10 insertions, 6 deletions
diff --git a/IkiWiki/Plugin/toggle.pm b/IkiWiki/Plugin/toggle.pm
index ef30fe6b6..cd9617e25 100644
--- a/IkiWiki/Plugin/toggle.pm
+++ b/IkiWiki/Plugin/toggle.pm
@@ -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