jQuery DataTables на сайте интрасети – getAttribute('class') возвращает null

Я работаю над веб-приложением интрасети, используя dataTables 1.8.2.

Проблема возникает только в IE9, когда он загружает режим браузера как IE9 Compat View / Document Mode IE7. Это происходит потому, что по умолчанию IE9 применяет эту настройку к внутренним/локальным сайтам. Понятия не имею почему.

При использовании fnSettings().aoData[0].nTr.getAttribute('class') возвращается null. Когда режим документа установлен на стандарты IE8 или выше, он возвращает правильный класс.

Интересно, что если я попытаюсь использовать getAttribute('id'), будет возвращен правильный идентификатор.

Как я могу получить/установить класс данной строки в aoData, когда IE9 находится в этом режиме совместимости?

Пример моей проблемы находится на http://live.datatables.net/ijowob (используйте IE9 F12 Developer инструменты для установки стандартов IE9 Compat / IE7)


person psynnott    schedule 25.11.2011    source источник


Ответы (1)


Это просто ошибка IE7. Самый надежный способ получить имя класса — использовать атрибут elementObj.className DOM. getAttribute() следует использовать только с неизвестными атрибутами.

person duri    schedule 25.11.2011
comment
Отлично, спасибо! На самом деле я как раз собирался обновить свой вопрос и сказать, что нашел это решение, но, поскольку вы правы на 100%, вы получаете баллы :) - person psynnott; 25.11.2011