getElementsByClassName 方法兼容性封装方法二
var getElmsByClsName = function(className, results) {
            results = results || [];
            // 判断浏览器是否支持 getElementsByClassName
            if(document.getElementsByClassName) {
                // 浏览器支持这个方法
                results.push.apply( results,
                    document.getElementsByClassName(className) );
            } else {
                // 浏览器不支持
                // 实现:通过类名来获取页面中的元素
                // 思路:
                // 1 通过标签名获取到所有的元素
                // 2 循环遍历获取到的所有元素,分别判断当前元素有没有指定的类
                // 1 获取到页面中所有的元素
                var nodes = document.getElementsByTagName("*");
                // 2 遍历
                for(var i = 0; i < nodes.length; i++) {
                    var cNodes = nodes[i];
                    /*// 2.1 判断当前元素是否包含 指定的类 className
                    // 第一种方式:
                    // 1 获取到当前元素的类名 className/getAttribute("class")
                    // 2 将获取到的类名 以空格分割 产生一个数组
                    //         ["c1", "c2", "c3"]
                    // 3 用数组中的每一个元素分别跟className比较
                    // 4 如果是符合要求的就放到 results 中
                    var cNodeClsName = cNodes.className;
                    var clsNames = cNodeClsName.split(" ");
                    for(var j = 0; j < clsNames.length; j++) {
                        if(clsNames[j] === className) {
                            results.push(cNodes);
                        }
                    }*/
                    // 第二种方式
                    // 在类名的两遍分别加空格,然后 参数类名 两端也加上空格
                    // 然后,在indexOf 来匹配
                    // c1 c2 c3 => 如果是判断c,也存在
                    // " c1 c2 c3 ".indexOf(" " + className + " ")
                    //                 " c "
                    if( (" " + cNodes.className + " ").indexOf(" " + className + " ") > -1) {
                        results.push(cNodes);
                    }
                }
            }
            return results;
        };
getElementsByClassName 方法兼容性封装方法二的更多相关文章
- MP实战系列(十二)之封装方法详解(续二)
		
继续MP实战系列(十一)之封装方法详解(续一)这篇文章之后. 此次要讲的是关于查询. 查询是用的比较多的,查询很重要,好的查询,加上索引如鱼得水,不好的查询加再多索引也是无济于事. 1.selectB ...
 - .Net基础——程序集与CIL  HttpClient封装方法  .Net Core 编码规范  C#中invoke和beginInvoke的使用  WebServeice 动态代理类
		
.Net基础——程序集与CIL 1. 程序集和CIL: 程序集是由.NET语言的编译器接受源代码文件产生的输出文件,通常分为 exe和dll两类,其中exe包含Main入口方法可以双击执行,dll ...
 - 如何打造属于自己的Javascript武器库(封装方法)
		
前言 代码写的久了,就会发现很多时候都是在写一些重复的东西,这个时候就应该要考虑到提高工作效率了,比如对常用方法的封装,例如日期格式化,浏览器类型判断等. 今天这篇文章我们就来看看如何封装常用的Jav ...
 - IE7,6与Fireofx的CSS兼容性处理方法集结
		
CSS对浏览器的兼容性有时让人很头疼,尤其是对于IE6这个问题多多的浏览器版本,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码 ...
 - PHP其它常用函数;<<<面向对象(OPP)的三大特性:封装、继承、加态:>>>  <----面试题  ;构造方法、析构方法,魔术方法、set、get方法;静态;抽象类;接口
		
PHP其它常用函数: 赋值:$r->name = "元素"; 取值: echo $r->name; count() 计算数组中的元素数目或对象中 ...
 - Android+appium +python   点击坐标tap方法的封装
		
当常使用的查找点击元素的方法name.id.classname等无法使用时,我们将会采取坐标的点击来实现操作,同样存在一个问题,当手机的分辨率.屏幕大小不一致时,坐标的定位也会不同,因此将采用相对坐标 ...
 - MP实战系列(十一)之封装方法详解(续一)
		
之前写的封装方法详解,比较简要. 今天我主要讲增加和删除及其修改.查的话得单独再详讲. 增删改查,无论是Java或者C#等等,凡是对数据库操作的都离不开这四个. 一.增加方法讲解 MyBatis Pl ...
 - Python开发基础-Day20继承实现原理、子类调用父类的方法、封装
		
继承实现原理 python中的类可以同时继承多个父类,继承的顺序有两种:深度优先和广度优先. 一般来讲,经典类在多继承的情况下会按照深度优先的方式查找,新式类会按照广度优先的方式查找 示例解析: 没有 ...
 - JS获取元素属性、样式getComputedStyle()和currentStyle方法兼容性问题
		
1. getComputedStyle() 方法获取到的是经过计算机/浏览器计算后的样式 getComputedStyle($("#div")).width; 兼容性:IE6 7 ...
 
随机推荐
- php生成唯一识别码uuid
			
/*生成唯一标志*标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx(8-4-4-4-12)*/ function uuid() { $chars = md ...
 - jq遍历 下拉框
			
var selectA1 = $("select[name=A1]"); //从A1下拉框中 搜索值 $(selectA1).children("option" ...
 - sql_1
			
order by SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC; SELECT Company, OrderNumber ...
 - jquery选择器的一些处理
			
本文不讨论用jquery选择器具体怎么选择页面元素,而讨论选择元素后后的一些处理 jquery的选择器选择元素的时候,即使没有选择到指定的对象,页面并不会报错,例子: <!doctype htm ...
 - Java中的常量
			
常量的概念 是指在Java程序中固定不变的数据.我们可以理解为是一种特殊的变量,它的值被设定后,在程序运行过程中不允许改变. 常量的分类 整数常量: 所有的整数 例如 100 -100 123 ...
 - codeforce 788 A. Funtions again
			
链接 A. Functions again 题意 这是一道求最大连续子序列和变形题. 做法 先将abs(a[i+1]-a[i]算出来,然后用两个数组dp[i],cp[i],dp维护其最大值,cp维护其 ...
 - vc++元文件的保存,保存图形,重绘图形
			
1, CMateFileDC 可以用来多次打开自己的画布,这个元文件包含许多接口的命令 当绘制好之后可以用来播放元文件 首先,创建一个CMateFileDC的元文件对象 然后调用Create原函数,创 ...
 - Java范式1
			
package Xwxx; public class Person { private String name; private int age; public Person() { } public ...
 - C++基础 (7) 第七天 多态的原理 纯虚函数和抽象类 依赖倒置原则
			
1 昨日回顾 2 多态的原理 1 要有继承 2 要有子类重写父类的虚函数 3 父类指针(或者引用)指向子类对象 (动态联编 虚函数表 3 证明vptr指针的存在 4 vptr指针在构造父类的时候是分步 ...
 - springboot实现mongodb上传下载
			
1.上传: private static Logger log = LoggerFactory.getLogger(MongoDbFSUtil.class); private static final ...