Quote:
Originally Posted by felgall
To cater for old IE simply include the following additional code to define getElementsByClassName for when the browser doesn't:
Code:
if (!document.getElementsByClassName)
document.getElementsByClassName = function(cl) {
var retNode, myclass, elem, classes;
retnode = [];
myclass = new RegExp('\\b'+cl+'\\b');
elem = this.getElementsByTagName('*');
for (var i = 0, ii = elem.length; i < ii; i++) {
classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};
|
good try, but fails.
this is exactly why i recommended using CSS:
Code:
if (!document.getElementsByClassName2) document.getElementsByClassName2 = function(cl) {
var retNode, myclass, elem, classes;
retnode = [];
myclass = new RegExp('\\b' + cl + '\\b');
elem = this.getElementsByTagName('*');
for (var i = 0, ii = elem.length; i < ii; i++) {
classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};
document.body.className="one-active";
alert(
document.getElementsByClassName2("one")[0].className==="one-active"
);//should be false, but it's true!