我们都知道用getElementByClassName方法来获取元素,有一些兼容性问题,IE9以下的浏览器并不支持这个方法;所以有时候我们需要自己写一个函数去实现这个功能;
下面就开始写这个函数啦;
function getClassName(name, tagPos){ // name是要传的类名,tagPos参数可以使得这个函数功能更灵活;
tagPos = tagPos || document.body;
var tags = tagPos.getElementByTagName('*'); //利用通配符的特性,获取页面上所有的标签;
var resultArr = []; // 忐忑的泥猴桃一个数组,等会用来接收所有包括你想求的这个类名的元素;
for(var i = 0; i < tags.length; i++){ // 遍历每一个元素;
var tempArr = tags[i].className.split(' '); /// 把每个元素的所有类名都切割成数组形式存到tempArr中(有时候标签会有很多类名);
for( var j = 0; j < tempArr.length; j++ ){ //遍历每个标签的所有类名;
if(tempArr[j] == name){ // 如果有一个元素中的任意一个类名与我们要找的类名相同
resultArr [ resultArr.length ]= tags[i]; // 我们就把这个标签放进先前的空数组中;
}
}
}
return resultArr;
}
好啦 一个简陋版的在IE9以下求类名的函数就写好啦;