getElementsByClassName

今天在网上看到的一个根据ClassName获取Elements的脚本,在此记录一下,以便日后使用。

代码
 1 var getElementsByClassName = function(searchClass, node, tag) {
 2     if (document.getElementsByClassName) {
 3         return document.getElementsByClassName(searchClass)
 4     } else {
 5         node = node || document;
 6         tag = tag || "*";
 7         var classes = searchClass.split(" "),
 8         elements = (tag === "*" && node.all) ? node.all : node.getElementsByTagName(tag),
 9         patterns = [],
10         returnElements = [],
11         current,
12         match;
13         var i = classes.length;
14         while (-->= 0) {
15             patterns.push(new RegExp("(^|\\s)" + classes[i] + "(\\s|$)"));
16         }
17         var j = elements.length;
18         while (-->= 0) {
19             current = elements[j];
20             match = false;
21             for (var k = 0, kl = patterns.length; k < kl; k++) {
22                 match = patterns[k].test(current.className);
23                 if (!match) break;
24             }
25             if (match) returnElements.push(current);
26         }
27         return returnElements;
28     }
29 }

 

 

posted @ 2010-03-31 14:45  舍长  阅读(333)  评论(0编辑  收藏  举报