用原生JS写getElementsByClassName方法

时间:2024-04-05 12:53:47

用原生JS写getElementsByClassName方法
getElementsByClassName是HTML5新增的DOM API 在IE8以下是不支持的,很多时候需要自己写一个getByClassName()方法

需要两个参数,一个parentObj父元素,一个是className

首先获取parents下所有节点,然后用一个for循环逐个判断其className是否等于我们要get的className如果相等的话就push到result中。

具体代码如下:

function getByClassName(obj,cls){
       var elements = obj.getElementsByTagName("*");
       var result = [];
       for(var i=0;i<elements.length;i++){
           if(elements[i].className==cls){
               result.push(elements[i]);
           }
       }
       return result;
}

其实这个方法还不是很完善,因为有的元素可能有不止一个className这个方法只适用于只含一个className的元素。

此文供个人记录和其他JS初学者学习

我叫掏粪 微博ID:我叫掏粪i

掏粪的独立博客:www.iimt.me

喜欢的朋友点个赞~