zoukankan      html  css  js  c++  java
  • js学习总结----getElementsByClass

    JS本身是有getElementsByClass方法,但是在ie6-8是不兼容的,所以这里自己封装一个兼容的该方法

    function getElementsByClass(className,context){
            context = context || document;
            //把传递进来的样式类名的首尾空格先去掉,然后在按照中间的空格把里面的每一项拆分成数组
            var classNameAry = className.replace(/(^ +| +$)/g,"").split(/ +/g);
    
            //获取指定上下文中的所有的元素标签,循环这些标签,获取每一个标签的className样式类名的字符串
            var ary = [];
            var nodeList = context.getElementsByTagName("*");
            for(var i = 0,len=nodeList.length;i<len;i++){
                var curNode = nodeList[i];
                //判断curNode.className是否包含classNameAry里面的样式值
    
                //
                var isOk = true;//我们假设curNode
                for(var k = 0;k<classNameAry.length;k++){
                    var curName = classNameAry[k];
                    var reg = new RegExp("(^| +)"+curName+"( +|$)");
                    if(!reg.test(curNode.className)){
                        isOk = false;
                        break;
                    }
                }
                if(isOk){//拿每一个标签分别和所有样式类名比较后,如果结果还是true的话,说明当前元素标签包含了所有的样式,也是我们想要的。
                    ary.push(curNode)
                }
            }
    
        }
  • 相关阅读:
    debian安装jdk,batik
    Debian 安装 VMware
    [转贴]UNIX\LINUX系统开发-gcc参数详解
    Free mail server
    mysql 权限控制笔记
    Debian 4.0 编译内核 2.6.27.6
    backbone 学习之sync
    backbone 学习之extend以及总结
    backbone 学习之全部源码
    backbone 学习之Collection
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7151637.html
Copyright © 2011-2022 走看看