Я бы использовал документ. GteelementsByClassname, но IE не поддерживает его.
Итак, я попробовал решение Джонатана Снука :
function getElementsByClassName(node, classname) {
var a = [];
var re = new RegExp('(^| )'+classname+'( |$)');
var els = node.getElementsByTagName("*");
for(var i=0,j=els.length; i
... Но то есть все еще говорит:
Объект не поддерживает это свойство или метод
Любые идеи, лучшие методы, исправления ошибок ?
Я бы предпочел не использовать никаких решений с участием jQuery или другого «громоздкого JavaScript».
Я получил его на работу!
AS @JOE упомянуто . Функция не является методом документа
.
Итак, рабочий код будет выглядеть так:
function getElementsByClassName(node, classname) {
var a = [];
var re = new RegExp('(^| )'+classname+'( |$)');
var els = node.getElementsByTagName("*");
for(var i=0,j=els.length; i
... также Если вам нужно только поддержку IE8 + , то это будет работать:
if(!document.getElementsByClassName) {
document.getElementsByClassName = function(className) {
return this.querySelectorAll("." + className);
};
Element.prototype.getElementsByClassName = document.getElementsByClassName;
}
Используйте его так же, как обычно:
var tabs = document.getElementsByClassName('tab');
-