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.