美文网首页
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

    实现类似getElementsByClassName 的功能 自己实现一个函数,查找某个DOM节点下面的包含某个c...

  • js代码题

    js对象的深度克隆 js数组去重 js常用设计模式的实现思路,单例,工厂,代理,装饰,观察者模式等

  • JS代码题5

    实现一个简单的虚拟 DOM 渲染 实现render函数: 主要用到了DOM API 和递归

  • JS代码题6

    字符串查找 请使用最基本的遍历来实现判断字符串 a 是否被包含在字符串 b 中,并返回第一次出现的位置(找不到返回...

  • JS代码题11

    统计一个字符串出现最多的字母 给出一段英文连续的英文字符窜,找出重复出现次数最多的字母 代码如下:

  • JS代码题13

    随机生成指定长度的字符串 实现一个算法,随机生成指制定长度的字符串。 实现: base是手写的,有什么好的生成方法吗?

  • JS代码题4

    实现一个简单的模板引擎 实现render函数: 这道题的主要考察正则的有关知识: 圆括号 test()方法 exe...

  • JS代码题8

    数据结构处理 有一个祖先树状 json 对象,当一个人有一个儿子的时候,child 为对象,如果有多个儿子,chi...

  • JS代码题16

    给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说...

  • JS代码题1

    接收两个参数m和n。返回一个数组,该数组长度为m,值为n。(不能使用循环) 1. 递归法 使用数组方法 unshi...

网友评论

      本文标题:JS代码题14

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