View Single Post
Old 01-17-2013, 01:14 AM   PM User | #7
rnd me
Senior Coder

 
rnd me's Avatar
 
Join Date: Jun 2007
Location: Urbana
Posts: 3,452
Thanks: 9
Thanked 466 Times in 450 Posts
rnd me is a jewel in the roughrnd me is a jewel in the roughrnd me is a jewel in the rough
Quote:
Originally Posted by felgall View Post
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!
__________________
my site (updated 5/13)
STATS (2013/5) HTML5:90.2% MOB:14% IE7:0.5% IE8:8.8% IE9:11.4% IE10:6.5%
rnd me is offline   Reply With Quote