美文网首页互联网科技程序员
用原生JS写getElementsByClassName方法

用原生JS写getElementsByClassName方法

作者: iimT | 来源:发表于2016-11-13 14:39 被阅读459次
    技术不停止

    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.yewu233.com

    喜欢的朋友点个赞~

    相关文章

      网友评论

        本文标题:用原生JS写getElementsByClassName方法

        本文链接:https://www.haomeiwen.com/subject/ktjcpttx.html