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...

兼容性:亲测ie6+

js文件下载:

http://pan.baidu.com/share/link?shareid=1821056573&uk=3945321701

来自大大的相关文章:

http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1529640.html

封装getElementsByClassName的更多相关文章

  1. 封装getElementsByClassName()

    function getElementsByClassName(node,classname){             if(node.getElementsByClassName){        ...

  2. getElementsByClassName兼容 封装

    众所周知,JS获取DOM有个getElementsByClassName,非常方便,但是呢,为了兼容某些浏览器(你懂的).只能 进行封装下了.解决方法如下 <!DOCTYPE html> ...

  3. js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素

    <html> <head> <script type="text/javascript"> window.onload = function() ...

  4. getElementsByClassName方法的封装

    Element.prototype.getElementsByClassName = function(searchClass,node,tag){ if(document.getElementsBy ...

  5. getElementsByClassName 方法兼容性封装方法二

    var getElmsByClsName = function(className, results) { results = results || []; // 判断浏览器是否支持 getEleme ...

  6. javascript中document.getElementsByClassName兼容性封装方法一

    var getElmsByClsName = function(className, results) { results = results || []; // 判断浏览器是否支持 getEleme ...

  7. 深入理解javascript选择器API系列第二篇——getElementsByClassName

    × 目录 [1]使用 [2]classList [3]扩展 前面的话 既然有getElementById()和getElementsByTagName()方法,为什么没有getElementsByCl ...

  8. 各种Js封装

    获取ClassName元素 function getClass(classname,id){ if(document.getElementsByClassName){ if(id){ return $ ...

  9. 封装一些常用的js工具函数-不定时更新(希望大家积极留言,反馈bug^_^)

    /*华丽------------------------------------------------------------------------------------------------ ...

随机推荐

  1. C#基础--.net平台的重要组成部分以及.net程序简单的编译原理

    .net平台的组成只要有两部分   FCL:框架类库    CLR:公共语言运行时 .net程序简单的编译原理 1.0:使用C#编译器(csc.exe) 将C#源代码编译成程序集+{编译之前:会检查C ...

  2. mysql中的longblob类型处理

    longblob 对应的 C#数据类型为 byte[] 1.byte[] 与 string 之间的转换 byte[] bb = Encoding.UTF8.GetBytes(ss); string s ...

  3. 使用Calendar 将当月日历打印出来

    package com.date; import java.text.DateFormatSymbols; import java.util.Calendar; import org.junit.Te ...

  4. iOS - 网络 - NSURLSession

    1.NSURLSession基础 NSURLConnection在开发中会使用的越来越少,iOS9已经将NSURLConnection废弃,现在最低版本一般适配iOS,所以也可以使用.NSURLCon ...

  5. 重构14-Break Responsibilities

    把一个类的多个职责进行拆分,这贯彻了SOLID中的单一职责原则(SRP).尽管对于如何划分“职责”经常存在争论,但应用这项重构还是十分简单的.我这里并不会回答划分职责的问题,只是演示一个结构清晰的示例 ...

  6. linux 文件系统(inode和block)

    linux文件系统(inode block superblock)   先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能 ...

  7. Kinect For Windows V2开发日志二:Kinect V2的基本参数

    以下内容节选自Heresy的博客:   彩色影像:1920 x 1080 @ 30 / 15 FPS(根据环境亮度) 深度影像:512 x 424 @ 30 FPS.16bit 距离值(mm).可侦测 ...

  8. EntityFramework使用中的一些Bug

    1. No Entity Framework provider found for the ADO.NET provider 解决方法:添加  EntityFramework.SqlServer.dl ...

  9. OpenShare:前所未有的开放性

    客户总是面临一个选择:开放的企业门户产品 vs 封闭的企业门户产品 市场上大多数企业门户产品是自成一体的其实也就是封闭的,他们不能和企业目录集成,不能和Exchange集成,不能和SAP集成,不能和L ...

  10. Sublime text3 笔记

    打算换个编辑器,以前用dw,在到Aptana,都是比较大的编辑器了,打开的时候都有些慢,久闻sublime text3,小巧轻便,插件丰富,所以决定换下 官网下载地址(ps 之前下载了各种的破解版,总 ...