zoukankan      html  css  js  c++  java
  • About getByClass

    不能获取class为多个的情况

    function getByClass(parent,cls){
        var res=[];
        var ele=parent.getElementsByTagName("*");
        for(var i=0;i<ele.length;i++){
            if(ele[i].className==cls){
                res.push(ele[i]);
            }
        }
        return res;
    }

     把除字母、数字、下划线的其它字符都当成是边界,当class为像abc-test时可能获取不准确

    function getByClass(parent,cls){
        var res=[];
        var reg=new RegExp("\b"+cls+"\b",i);
        var ele=parent.getElementsByTagName("*");
        for(var i=0;i<ele.length;i++){
            if(reg.test(ele[i].className)){
                res.push(ele[i]);
            }
        }
        return res;
    }

    有空格

    function getByClass(parent,cls){
        var res=[];
        var reg=new RegExp(" "+cls+" ",i);
        var ele=parent.getElementsByTagName("*");
        for(var i=0;i<ele.length;i++){
            if(reg.test(" "+ele[i].className+" ")){
                res.push(ele[i]);
            }
        }
        return res;
    }

    空格使用正则来处理

    function getByClass(parent,cls){
        var res=[];
        var reg=new RegExp('(^|\s)'+cls+'($|\s)','i');
        var ele=parent.getElementsByTagName("*");
        for(var i=0;i<ele.length;i++){
            if(reg.test(ele[i].className)){
                res.push(ele[i]);
            }
        }
        return res;
    }

    结合getElementsByClassName()

    function getByClass(parent,cls){
        if(parent.getElementsByClassName){
            return parent.getElementsByClassName(cls);
        }
        else{
            var res=[];
            var reg=new RegExp(" "+cls+" ","i");
            var ele=parent.getElementsByTagName("*");
            for(var i=0;i<ele.length;i++){
                if(reg.test(" "+ele[i].className+" ")){
                    res.push(ele[i]);
                }
            }
            return res;
        }
    }
  • 相关阅读:
    SDN组网相关解决方案
    Linux C中结构体初始化
    lambda函数、lambda表达式
    流量工程 traffic engineering (TE)
    BGP路由协议详解(完整篇)
    Overlay network 覆盖网络
    覆盖路由
    重叠(Overlapping) NAT
    Multiprotocol Label Switching (MPLS)
    MPLS
  • 原文地址:https://www.cnblogs.com/jiujiaoyangkang/p/4971975.html
Copyright © 2011-2022 走看看