getElementsByClassName() в IE8

Браузер Internet Explorer 8 (IE8) не поддерживает DOM-метод getElementsByClassName(), поэтому при попытке его вызова IE8 выводит в консоль сообщение об ошибке «Объект не поддерживает это свойство или метод».

Однако IE8 поддерживает метод querySelectorAll(), с помощью которого можно решить ту же задачу без привлечения каких-либо JS-библиотек:

var elems = document.getElementsByClassName('foo bar'); // IE9+
var elems = document.querySelectorAll('.foo.bar');      // IE8

В приведённом примере оба вызова осуществляют выборку элементов, одновременно имеющих классы foo и bar.

Метод getElementsByClassName() предназначен для выборки элементов по одному или нескольким классам, в то время как querySelectorAll() ищет элементы, соответствующие заданному селектору.

В браузерах, поддерживающих одновременно оба метода, использование getElementsByClassName() для выборки элементов по классам может быть предпочтительным ввиду потенциально более высокого быстродействия благодаря отсутствию необходимости в полномасштабном разборе селектора, который может содержать далеко не только классы.


Вас также может заинтересовать matchesSelector() для IE8.