document.querySelectorAll([имя класса]) не работает в IE9

Возможный дубликат:
эквивалент IE9 для querySelectorAll

Я пытаюсь получить все элементы с именем класса «видео» в некоторых JS, работающих в IE9. Я использую var videopanels = document.querySelectorAll(".video");, который отлично работает в Chrome.

К сожалению, я получаю эту ошибку, когда смотрю document.querySelectorAll(".video") в отладчике:

document.querySelectorAll(".video")
Object doesn't support property or method 'querySelectorAll'
Error

Однако, когда я смотрю document в отладчике (он отображается как DispHTMLDocument) и открываю список [Methods], я вижу

querySelectorAll()
querySelectorAll(v)
IHTMLDOMChildrenCollection

В чем дело? Почему я вижу его в отладчике, но не могу (очевидно) вызвать или использовать его?


person Andrew Wyld    schedule 29.01.2013    source источник


Ответы (1)


Измените тип документа на стандарты html5.

<!DOCTYPE html>

Также убедитесь, что IE9 не работает в режиме совместимости, так как это может привести к тому, что он будет игнорировать некоторые поддерживаемые им методы.

person Robin Jonsson    schedule 29.01.2013
comment
Мой тип документа именно такой. - person Andrew Wyld; 29.01.2013
comment
Оказалось, что мой браузер переключился в режим совместимости с IE7. Я не помню, чтобы делал это, но это почти наверняка проблема. Спасибо хоть! - person Andrew Wyld; 29.01.2013
comment
Да, это должно быть в стандартном режиме :) Без проблем - person Robin Jonsson; 29.01.2013
comment
@AndrewWyld Пожалуйста, проверьте этот ответ SO. - person Teemu; 29.01.2013
comment
Это не было настоящей причиной моей проблемы, поэтому я решил оставить их без изменений, потому что это может помочь людям узнать обе возможные причины. - person Andrew Wyld; 29.01.2013
comment
@RobinJonsson, вы в порядке, если я изменю ваш пост, чтобы он отражал IE7? - person Andrew Wyld; 29.01.2013
comment
Да, спасибо! забыл добавить это - person Robin Jonsson; 29.01.2013
comment
Исправлена ​​проблема для меня в Chrome в Linux. - person chris; 30.01.2015