[Javascript] getElementsByClassName & IE8: объект не поддерживает это свойство или метод


Answers

Метод getElementsByClassName не поддерживается IE8.

Вы должны использовать document.querySelectorAll('.classname') (работает в IE8 +) или библиотеку, которая реализует эту функциональность - например:

  • jQuery
  • Moo Tools
  • DOJO
  • YUI
  • Prototype

    ... Среди прочих ...

querySelectorAll поддержка:

http://www.quirksmode.org/dom/w3c_core.html#t13

Поддержка getElementsByClassName :

http://www.quirksmode.org/dom/w3c_core.html#t11

Question

На этот вопрос уже есть ответ:

Я знаю, что « getElementsByClassName » не поддерживается IE8 . Знаете ли вы, что я могу использовать вместо этого? Меня раздражает ошибка

«Объект не поддерживает это свойство или метод».

Код HTML:

function sumar() {
var elems = document.getElementsByClassName('verdana14 toAdd');
var myLength = elems.length;
total = 0;
for (var i = 0; i < myLength; ++i) {
   if (elems[i].value!="") {
       total += parseInt(elems[i].value,10);
       }
    }

var promedio = total/myLength;
parseFloat(document.getElementById('promediocal').value = promedio.toFixed(2));
}

Это текст ввода, который вызывает функцию javascript:

<input name='AE_EA_1_BIV_003_2' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_2' style='width:50px' onChange='sumar()'/>
<input name='AE_EA_1_BIV_003_3' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_3' style='width:50px' onChange='sumar()'/>
<input name='AE_EA_1_BIV_003_4' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_4' style='width:50px' onChange='sumar()'/>



использовать jQuery или фильтровать результаты getElementsByTag




вы можете попробовать использовать jquery, поскольку у него есть альтернативный селектор классов, чтобы получить элементы там имена классов. $ (". testclass"). Каждый ... он даст вам требуемые элементы по именам классов