JS代码题14

实现类似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,不知道有没有不能这个函数能获取所有元素节点的方法

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 昨日,你传来一首自己翻唱的魏如萱的《一起去旅行》。真是动听。最好的时光,始终在路上。然而一切大的美好都是静默的,而...
    CHADLO阅读 899评论 3 7
  • 星期一总是让大多数人感到特别沮丧的一天:昨日的盛宴狂欢已成往事,漫漫长路还有五天才到下一个极乐世界,这是何等的煎熬...
    为时未晚阅读 676评论 6 3
  • 昨日去办住房贷款,其实最后还是发现出现了很多问题。无论是缴款银行问题,还是套现到账时间问题,更或者是办贷款银行问题...
    雀岛札记阅读 152评论 0 0