Is there a better/faster way to find all elements with a class name in browsers that don't support 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;
And no I don't want to use jQuery :)
我将检查John Resig在模拟document.getElementsByClassName
方法上的比较 。
While IE8 doesn't support document.getElementsByClassName
, it does support document.querySelectorAll
, so that would be an option for IE8 anyway.
You could do something like:
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;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.