//code ref http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1529640.html
//支持 多class搜索 ie:getElementsByClassName("classA classB")
var getElementsByClassName = function (searchClass, node, tag) {
var node = node || document;
var tag = tag || "*";
if (document.getElementsByClassName) {//尽量用原生方法
var nodes = node.getElementsByClassName(searchClass),result = [];
if (tag === "*") {//直接return
return nodes;
} else {
for (var node in nodes) {
if (node.tagName === tag.toUpperCase()) {
result.push(node)
}
}
return result
}
} else {
var classes = searchClass.split(" "),
elements = (tag === "*" && node.all) ? node.all : node.getElementsByTagName(tag),
patterns = [],
current,
match;
var i = classes.length;
while (i--) {
patterns.push(new RegExp("(^|\\s)" + classes[i] + "(\\s|$)"));
}
var j = elements.length;
while (j--) {
current = elements[j];
match = false;
for (var pattern in patterns) {
match = pattern.test(current.className);
if (!match) break;
}
if (match) result.push(current);
}
return result;
}
}
分享到:
相关推荐
getElementsByClassName() 为了从一大堆HTML代码中找出我们的树状菜单(也许有多个),我们先来实现一个通过className找DOM节点的方法:getElementsByClassName。这是对浏览器自有DOM方法的一个简单但实用的扩充。 此...
在DOM3里已经加入了getElementsByClassName这个方法,然而IE9、10以外的其它版本均不支持,这是一块伤痛啊! 目前可以这么解决,判断浏览器支不支持这个方法,如果支持就不管;如果不支持,就在document对象里加入...
getElementsByClassName()是HTML5 新增的DOM API。IE8以下不支持搜索。 getElementByClassName()函数的使用方法: 使用JavaScript访问DOM的一个重大问题是,此过程需要一种通过元素类名称来选择类的类函数,对...
原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用。 修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法。 代码如下: 原来方法: document....
今天使用getElementsByClassName写了段小程序,满怀欣喜的准备去测试,在ff,谷歌等主流浏览器上测试都没问题,在IE9上也没问题,在IE6、8中测试的时候就出现问题了,浏览器报错。纠结了下代码,貌似没问题,果断找...
主要推荐一个封装好的getElementsByClassName方法,需要的朋友可以参考下
先来看一下代码:(支持多个class查询和在某个范围内进行...*/ function getElementsByClassName(fatherId,tagName,className){ node = fatherId&&document.getElementById(fatherId) || document; tagName = tagName |
本文实例讲述了JS中getElementsByClassName与classList兼容性问题解决方案。分享给大家供大家参考,具体如下: document(element).getElementsByClassName(classNames:classString); HTML5新添加了这个方法,这个...
如果不支持,就在document对象里加入getElementsByClassName这个方法,这样的写法有一个好处,即不管有没有原生函数你都不用去修改代码。 通常先使用getElementsByTagName(“*”)取出文档中所有元素,然后进行遍历,...
有兴趣刚需的可以自己下载,非常实用的特效代码,可以完美运行,有能力的还可以二次修改!
js 获取class的元素的方法 以及创建方法getElementsByClassName,需要的朋友可以参考一下
今天在脚本中应用到了根据类名取元素的方法,却对其效率不甚满意。于是,小幅修改了其探测元素类名的方法,提升了约3成的效率.
getelementsbyclassname 自动从code.google.com/p/getelementsbyclassname导出 此代码是根据