兼容IE getElementsByClassName取标签

 1 function getElementsByClassName(className,root,tagName) {    //root:父节点,tagName:该节点的标签名。 这两个参数均可有可无
 2     if(root){
 3         root=typeof root=="string" ? document.getElementById(root) : root;   
 4     }else{
 5         root=document.body;
 6     }
 7     tagName=tagName||"*";                                    
 8     if (document.getElementsByClassName) {                    //如果浏览器支持getElementsByClassName,就直接的用
 9         return root.getElementsByClassName(className);
10     }else { 
11         var tag= root.getElementsByTagName(tagName);    //获取指定元素
12         var tagAll = [];                                    //用于存储符合条件的元素
13         for (var i = 0; i < tag.length; i++) {                //遍历获得的元素
14             for(var j=0,n=tag[i].className.split(' ');j<n.length;j++){    //遍历此元素中所有class的值,如果包含指定的类名,就赋值给tagnameAll
15                 if(n[j]==className){
16                     tagAll.push(tag[i]);
17                     break;
18                 }
19             }
20         }
21         return tagAll;
22     }
23 }

 

posted @ 2018-02-24 10:57  前端极客  阅读(321)  评论(0编辑  收藏  举报