原生JS解决getElementsByClassName兼容问题
//通过自定义函数实现获取类名(不适合多个类名)
function getElementsByClassName(node,classname){
if(node.getElementsByClassName){
return node.getElementsByClassName(classname);
}else{
var results=new Array();
var elems=node.getElementsByTagName("*");
for(var i=0;i<elems.length;i++){
if(elems[i].className.indexOf(classname)!=-1){
results[results.length]=elems[i];
}
}
return results;
}
}
var myDiv=document.getElementById("div");
var myElement=getElementsByClassName(myDiv,"box");
这个函数接收两个参数,第一个node表示我们的搜索节点,第二个参数则是搜索的类名。
-
如果传入节点已经存在适当的getElementsByClassName函数,那么这个函数就直接返回相应的节点列表。
-
如果getElementsByClassName函数不存在,这个函数就会循环遍历所有的标签,查找相应的类名元素
注意该方法不适合多个类名,后续我还更新一些适合大家原生js