/*
思路:(getElementsByClassName在IE中不支持)
1.首先判断浏览器是否至此getElementsByClassName方法
2.如果支持,则直接使用getElementsByClassName方法;
3.如果不支持,则获取该元素下所有的子元素,
并对每个元素的className进行查询,这里要考虑多个类名的情况
因此对每个子元素的类名通过split(' ');进行类名的拆封,split返回的是一个数组,因此需要一次遍历,如果匹配,则通过push方法存放到数组中,如果不匹配进行下次循环
最后返回获得的数组
*/
function getClassName(obj, className) {
// 没有传递 obj 参数,则默认使用 document
var ele = obj || document;
//兼容ie浏览器
if (!ele.getElmentsByClassName) {
var result = [];
var elmemets = ele.getElementsByTagName("*");
for (var i = 0; i < elements.length; i++) {
//使用split函数将元素中含有的多个类名分开,并一个个查找
var classNames = elements[i].className.split(" ");
// 遍历当前元素的每个类名
for (var j = 0; j < classNames.length; j++) {
//如果该元素中存在要获取的类明,则加入到数组中
if (classNames[j] == className) {
result.push(elements[j]);
}
}
}
} else {//w3c写法
return ele.getElementsByClassName(className);
}
return result;
}