IE浏览器不支持document.getElementsByClassName的解决办法
1、基础方法①
/**
* 通过class名和标签名获取css样式对象组
*/
function getClassNames(classStr, tagName) {
if (document.getElementsByClassName) {
return document.getElementsByClassName(classStr)
} else {
// 为了兼容ie8及其以下版本的方法
var nodes = document.getElementsByTagName(tagName), ret = [];
for (i = 0; i < nodes.length; i++) {
if (hasClass(nodes[i], classStr)) {
ret.push(nodes[i])
}
}
return ret;
}
}
2、基础方法②
/**
* 判断节点class是否存在
*/
function hasClass(tagStr, classStr) {
// 这个正则表达式是因为class可以有多个,判断是否包含
var arr = tagStr.className.split(/\s+/);
for ( var i = 0; i < arr.length; i++) {
if (arr[i] == classStr) {
return true;
}
}
return false;
}
3、调用
var tags = getClassNames('active', 'li');
if (null != tags) {
// 遍历对象,改其css样式
for ( var i = 0; i < tags.length; i++) {
tags[i].className = '';
}
}
param.className = 'active';
4、说明
'active'是要操作的样式,'li'是要查找的标签。

浙公网安备 33010602011771号