美文网首页
JS代码题14

JS代码题14

作者: twentyshaw | 来源:发表于2019-12-08 12:59 被阅读0次

    实现类似getElementsByClassName 的功能

    自己实现一个函数,查找某个DOM节点下面的包含某个class的所有DOM节点。不允许使用原生提供的getElementsByClassName,querySelectorAll等原生提供DOM查找函数。

    代码如下:

    function findClass(node,name){
        var nodes
        if(node){
            nodes = node.children       
        }else{ //没有传节点的情况下,就搜索整篇文档内的元素
            nodes = document.getElementsByTagName('*') 
        }
        var classes
        var result = []
        for (var i = 0; i < nodes.length; i++) {
            classes = nodes[i].className.split(' ') //一个元素可能拥有多个classname,被空格隔开
            if (classes.indexOf(name) !== -1) {
                result.push(nodes[i])
            }
        }
        return result
    }
    

    还是用到了原生查找函数:document.getElementsByTagName,不知道有没有不能这个函数能获取所有元素节点的方法

    相关文章

      网友评论

          本文标题:JS代码题14

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