美文网首页
document.getElementsByClassName的

document.getElementsByClassName的

作者: peng桑 | 来源:发表于2017-03-09 19:43 被阅读0次

    1.原生document.getElementsByClassName

    兼容性ie9+,var elements = element.getElementsByClassName(names);参数为指定类名,格式为字符串,也可以同时指定多个类名,如'a','a b','a b c'

    2.兼容性方法实现

    function getByClassName(name,node){
        let all=node?node.getElementsByTagName('*'):document.getElementsByTagName('*')
        let arr=[]
        let nameArr=name.split(' ')
        for(let i=0;i<all.length;i++){
            if(isallhave(all[i],nameArr)){
                arr.push(all[i])
            }
        }
        return arr
    }
    function isallhave(ele,name){
        if(ele.className){
            for(let j=0;j<name.length;j++){
                if(ele.className.split(' ').indexOf(name[j]) === -1){
                return false
                 }
            }
            return true   
        } 
        return false
    }
    

    可以实现多个类名查找let class=getByClassName(name,node)name可以是多个类名,node为指定的元素节点,忽略则认为是在document下查找。

    相关文章

      网友评论

          本文标题:document.getElementsByClassName的

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