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;
        }
    }
  • 相关阅读:
    再见2011,展望2012!
    软件测试经验分享
    常用window命令
    测试报告编写
    酒桌上的计算机网络
    OA压力测试案例
    FileSystemObject和Folders使用详细介绍
    关于盘点的问题汇总
    PB 图表数据窗口操作
    sqlserver2005中行转列的方法
  • 原文地址:https://www.cnblogs.com/jiujiaoyangkang/p/4971975.html
Copyright © 2011-2022 走看看