推荐一个封装好的getElementsByClassName方法

 更新时间:2014年12月02日 15:01:00   投稿:hebedich  
这篇文章主要推荐一个封装好的getElementsByClassName方法,需要的朋友可以参考下

我们知道,原生的JS给我们提供了getElementsByClassName方法,可以通过此方法获取到含有某指定class的节点集合,注意是集合,也就是此函数返回一个数组。

但是,IE却并不支持这个方法,但这方法却是很有实用性,所以,我们又不得不专门为IE实现这么一个函数。

复制代码 代码如下:

function getElementsByClassName(oEle,sClass,sEle){
  if(oEle.getElementsByClassName){
    return oEle.getElementsByClassName(sClass);
  }else{
    var aEle=oEle.getElementsByTagName(sEle || '*'),
      reg=new RegExp('(^|\\s)'+sClass+'($|\\s)'),
      arr=[],
      i=0,
      iLen=aEle.length;

    for(; i<iLen; i++){
      if(reg.test(aEle[i].className)){
        arr.push(aEle[i]);
      }
    }
    return arr;
  }
}

使用方法:

复制代码 代码如下:

//第一种:选择document下的所有class为box_box的div元素
  getElementsByClassName(document,'box_box','div')[0].style.background='yellow';

//第二种:选择document下的所有class为box-box的div元素
  getElementsByClassName(document,'box-box','div')[0].style.background='yellow';

//第三种:选择document下的所有class为box-box元素
  getElementsByClassName(document,'box-box')[0].style.background='yellow';

oEle、sClass是必填的,sEle是选填的。

sClass中又中横线或下划线亲测木有问题,比如说:box-box box_box;但是如果是其他特殊字符就很有可能有问题了,如:box$box…  当然可以自己加转义搞定特殊字符,如:box\\$box…

兼容性:亲测ie6+

小伙伴们自己使用一下就知道了,超级好用,扩散下给其他小伙伴吧。

相关文章

  • JavaScript 异步调用

    JavaScript 异步调用

    本文通过一个小小题目逐步走进javascript 异步调用问题,本文附有解答过程,感兴趣的朋友一起看看吧
    2017-10-10
  • 小程序开发之uniapp引入iconfont图标以及使用方式

    小程序开发之uniapp引入iconfont图标以及使用方式

    uniapp本身是有icon组件的,但由于icon组件各端表现存在差异,所以我们可以通过使用iconfont的字体图标来弥补这些差异,下面这篇文章主要给大家介绍了关于小程序开发之uniapp引入iconfont图标以及使用方式的相关资料,需要的朋友可以参考下
    2022-11-11
  • js 绑定键盘鼠标事件示例代码

    js 绑定键盘鼠标事件示例代码

    用jq提交时想同时按回车键可以提交,此时就不要用form,需要的朋友可以参考下
    2014-02-02
  • 原生js实现九宫格拖拽换位

    原生js实现九宫格拖拽换位

    这篇文章主要为大家详细介绍了原生js实现九宫格拖拽换位,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • 微信小程序人脸识别功能代码实例

    微信小程序人脸识别功能代码实例

    这篇文章主要介绍了微信小程序人脸识别功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • javascript 实现自由落体的方块效果

    javascript 实现自由落体的方块效果

    这其实是一个很简单的实现,create一个新的div元素,然后append到文档的body上,经过一定时间的延迟,做自由落体运动,着地后fade消失。 不多说,直接上代码。
    2010-01-01
  • Javascript中数组去重与拍平的方法示例

    Javascript中数组去重与拍平的方法示例

    这篇文章主要介绍了Javascript中数组去重与拍平的相关资料,因为这是实际业务开发中经常遇到的,文中开始先进行了数组的判断介绍,因为在处理数组之前判断数据是不是数组很重要,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • JavaScript模板引擎EJS特性及用法详解

    JavaScript模板引擎EJS特性及用法详解

    EJS是一种简单而灵活的模板引擎,用于将数据动态渲染到网页上,本文将从介绍EJS的背景和起源开始,详细介绍EJS的特性和使用方法,包括安装配置、基本语法和标签、数据绑定和逻辑控制、模板的继承和包含等方面,感兴趣的同学跟着小编一起来学习吧
    2023-06-06
  • 小程序getLocation需要在app.json中声明permission字段

    小程序getLocation需要在app.json中声明permission字段

    这篇文章主要介绍了小程序getLocation需要在app.json中声明permission字段,个别需要获取用户地理位置的在开发者工具调试时会出现getLocation需要在app.json中声明permission字段 ,下面我们就一起来解决一下
    2019-04-04
  • js字符串分割处理的几种方法(6种)

    js字符串分割处理的几种方法(6种)

    本文主要介绍了js字符串分割处理的几种方法,主要介绍了6种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论