getElementsByClassName()
Status: untested
var getElementsByClassName =
document.getElementsByClassName ? function (class_name, scope) {
return (scope || document).getElementsByClassName(class_name);
}
: document.querySelectorAll ? function (class_name, scope) {
return (scope || document).querySelectorAll("." + class_name);
}
: document.evaluate ? function (class_name, scope) {
var n,
r = [],
x = document.evaluate("descendant::*[contains(concat(' ', @class, ' '), ' " + class_name + " ')]",
scope || document, null, 5, null);
while (n = x.iterateNext()) {
r.push(n);
}
return r;
}
: function (class_name, scope) {
scope = scope || document;
var nL = scope.all || scope.getElementsByTagName("*"),
r = [];
for (var i = 0, n; n = nL[i]; ++i) {
if (n.className && (' ' + n.className + ' ').indexOf(' ' + class_name + ' ') != -1) {
r.push(n);
}
}
return r;
};
Original code by Maggi, altered by Woosta