原生js方法 document.getElementsByClassName
在ie8及其以下浏览器中不能使用,所以写了一个兼容IE的方法。
代码如下:
/**
* 通过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;
}
}
/**
* 判断节点class存在性
*/
function hasClass(tagStr, classStr){
//这个正则表达式是因为class可以有多个,判断是否包含
var arr = tagStr.className.split(/\s+/);//等同于split(" ")
for ( var i = 0; i < arr.length; i++) {
if (arr[i] == classStr) {
return true;
}
}
return false;
}
网友评论