zoukankan      html  css  js  c++  java
  • 解决ie8(及其以下)不支持getElementsByClassName的问题

    这篇技术笔记与大家分享的是:解决IE8(及以下)不支持getElementsByClassName的方法。如果有说错的地方,麻烦留言告诉我,我及时更正,一来是更新一下我的认知,二来也是不要误导的他人,谢谢。

    我们在给元素设置样式的时候,可以说用的最多的就是类(class)了。遗憾的是在低版本IE浏览器(IE8及其以下版本)中,我们不能用getElementsByClassName,因为IE没有为document对象添加这个方法。

    // IE8及其以下版本中 这个结果是false
    console.info('getElementsByClassName' in window.document);

    下面,分享一下我的getElementsByTagName的兼容写法:

        /* 
        参数说明:
            obj参数:一个DOM对象,getClass函数会取得这个对象下的全部元素节点。
            sClass:一个字符串,获取元素的类(class)名。
        */
        function getClass(obj,sClass){
            // 准备一个数组 做为函数调用的结果返回
            var aResult = [];
            // 如果docuemnt对象中有getElementsByClassName这个方法 我们就用浏览器提供的 
           因为浏览器提供的效率更高
    if('getElementsByClassName' in document){ aResult = obj.getElementsByClassName(sClass); } // 如果浏览器没有 那么我们自己来实现 总共4步 else{ //1.获取obj下所有的元素 var aEle = obj.getElementsByTagName('*'); //2.用for循环来检查每个子元素 for( var i=0; i<aEle.length; i++ ){ // 3.得到每个子元素className值 这个值是字符串 var str = aEle[i].className; // 4.如果该元素的class属性有我们需要的class 那么把它放进aResult if(str.indexOf(sClass)!=-1){ aResult.push(aEle[i]); } } } return aResult; }
  • 相关阅读:
    idea中编译项目报错 java: javacTask: 源版本 1.8 需要目标版本 1.8
    发布返回结果对象中添加冒泡结果字段
    Spring还使用基于 JSR-250 注释,它包括 @PostConstruct, @PreDestroy 和 @Resource 注释
    跨网段IP
    Vlan
    分区工具parted的详解及常用分区使用方法
    dump命令详解
    备份 (综述)
    firewalld 防火墙配置
    find、which、whereis、locate和type之间的区别
  • 原文地址:https://www.cnblogs.com/ghettoboy/p/6010682.html
Copyright © 2011-2022 走看看