您的位置:首页 > Web前端 > JavaScript

原生JavaScript解决document.getElementsByClassName兼容问题

2018-01-19 12:36 671 查看
/**
 * 解决 getElementsByClassName() 兼容问题
 * @param className 待查找的类名
 * @param context 查找上下文DOM对象,可选,默认使用 document
 * @return 返回查找到的满足条件的DOM元素集合
 */
function getElementsByClassName(className, context) {
context = context || document;
if (context.getElementsByClassName) // 支持使用 getElementsByClassName() 方法
return context.getElementsByClassName(className);

/* 不支持使用 getElementsByClassName() 方法 */
// 保存查找结果的数组
var result = [];
// 查找出上下文后代中所有元素
var tags = context.getElementsByTagName("*");
// 遍历所有元素
for (var i = 0, len = tags.length; i < len; i++) {
// 判断当前遍历到元素是否有使用过待查找的类名
var classNames = tags[i].className.split(" ");
if (inArray(className, classNames) !== -1) // 当前遍历到的元素使用过待查找的类名
result.push(tags[i]);
}

// 返回查找结果
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js