//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;
}
}
分享到:
相关推荐
在互联网技术日新月异的发展中,老旧的浏览器如IE7和IE8有时会成为开发者面临的挑战,因为它们不支持一些现代Web开发中的标准API,比如`document.getElementsByClassName`。这个方法在HTML5中被引入,用于获取页面上...
getElementsByClassName() 为了从一大堆HTML代码中找出我们的树状菜单(也许有多个),我们先来实现一个通过className找DOM节点的方法:getElementsByClassName。这是对浏览器自有DOM方法的一个简单但实用的扩充。 此...
在JavaScript中,`getElementsByClassName` 是一个非常实用的方法,它允许开发者根据指定的类名来查找DOM树中的元素。然而,这个方法在早期版本的Internet Explorer(尤其是IE8及以下)中并不支持,这给跨浏览器的...
原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用。 修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法。 代码如下: 原来方法: document....
`getElementsByClassName()` 是 JavaScript 中用于获取页面上具有特定类名的元素集合的 DOM API。这个方法在 HTML5 中被引入,但在 Internet Explorer 8 及以下版本中并不支持。为了确保在旧版浏览器中的兼容性,...
在IE6、8等较旧版本的Internet Explorer浏览器中,`getElementsByClassName` 方法并不被支持,这导致了开发者在尝试获取页面上具有特定类名的元素时遇到问题。`getElementsByClassName` 是一个非常方便的DOM API,它...
在DOM3里已经加入了getElementsByClassName这个方法,然而IE9、10以外的其它版本均不支持,这是一块伤痛啊! 目前可以这么解决,判断浏览器支不支持这个方法,如果支持就不管;如果不支持,就在document对象里加入...
IE浏览器不支持getElementsByClassName方法是前端开发者常遇到的问题。为解决该问题,可以通过JavaScript进行兼容性处理。首先需要判断浏览器是否支持该方法,如果支持则直接使用,如果不支持,则需要在document对象...
`getElementsByClassName` 是 JavaScript 中用于获取文档中具有特定类名的元素的函数。在许多现代浏览器中,这个方法是内置的,但在某些较旧或非主流的浏览器中可能不支持。为了确保跨浏览器兼容性,我们可以自己...
本文实例讲述了JS中getElementsByClassName与classList兼容性问题解决方案。分享给大家供大家参考,具体如下: document(element).getElementsByClassName(classNames:classString); HTML5新添加了这个方法,这个...
然而,原生的 `getElementsByClassName` 在某些浏览器或旧版本的 JavaScript 中可能不可用,因此,开发者经常需要编写兼容性的代码来实现类似的功能。 在提供的代码段中,可以看到一个自定义的 `...
在JavaScript中,可以使用`getElementsByClassName`方法来实现这一需求。该方法是由文档对象模型(DOM)提供的一个原生JavaScript方法,能够返回一个包含文档中具有给定class名称的所有元素的HTMLCollection对象。 ...
《深入理解GETElementsByClassName:从code.google.com/p/getelementsbyclassname导出的解析》 在Web开发中,高效地操作DOM元素是至关重要的。本文将深入探讨`getElementsByClassName`这个JavaScript方法,它是从...