是否有更好/更快的方式在不支持document.getElementsByClassName
的浏览器中查找具有类名的所有元素?
var elements = document.getElementsByTagName('*'),
results = [];
for (var i=0; i < elements.length; i++) {
(elements[i].className === selector) ? results.push(elements[i]) : null;
}
return results;
不,我不想使用jQuery:)
答案 0 :(得分:6)
我会查看John Resig's comparison有关模拟document.getElementsByClassName
的方法。
答案 1 :(得分:2)
虽然IE8不支持document.getElementsByClassName
,但它支持document.querySelectorAll
,因此无论如何这都是IE8的选项。
您可以执行以下操作:
function byClass( sel ) {
var results;
if( document.querySelectorAll ) {
results = document.querySelectorAll( '.' + sel );
} else if( document.getElementsByClassName ) {
results = document.getElementsByClassName( sel );
} else {
var elements = document.getElementsByTagName('*'),
results = [];
// and so on
}
return results;
}