var getElementsByClassName = function (searchClass, node,tag) { |
if (document.getElementsByClassName){ |
return document.getElementsByClassName(searchClass) |
} else { |
node = node || document; |
tag = tag || "*" ; |
var classes = searchClass.split( " " ), |
elements = (tag === "*" && node.all)? node.all : node.getElementsByTagName(tag), |
patterns = [], |
returnElements = [], |
current, |
match; |
var i = classes.length; |
while (--i >= 0){ |
patterns.push( new RegExp( "(^|//s)" + classes[i] + "(//s|$)" )); |
} |
var j = elements.length; |
while (--j >= 0){ |
current = elements[j]; |
match = false ; |
for ( var k=0, kl=patterns.length; k<kl; k++){ |
match = patterns[k].test(current.className); |
if (!match) break ; |
} |
if (match) returnElements.push(current); |
} |
return returnElements; |
} |
} |