Динамически созданный div не имеет стилей CSS в DOM в IE8 - PullRequest
0 голосов
/ 22 марта 2012

Используя jQuery в IE8, я создаю div с классом (например, <div class="className"></div>). В этом классе есть несколько стилей CSS, включая background, margin и border. При отладке JavaScript в IE9 (работает как IE8) и проверке элемента все значения currentStyles имеют значения по умолчанию, а не значения из CSS. Итак, когда я пытаюсь получить margin, он возвращается как установленный на auto, хотя CSS устанавливает его на 10px.

Скрипт не содержит ошибок и работает так, как ожидается в Firefox, Chrome и IE9. Есть мысли?

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

С некоторой помощью из комментариев выше (под первоначальным вопросом) я обнаружил, что div на самом деле не было в DOM в то время, когда я пытался получить его свойства CSS, поэтому я видел только CSS по умолчанию для элемента. Конечно, IE9, Firefox и Chrome справились с этим нормально, но имеет смысл, что сначала элемент должен быть в DOM.

В качестве обходного пути я append() скрыл input для DOM с теми же классами, что и div. Затем я могу получить нужные мне свойства / значения CSS, а затем удалить input. Хотя это и не идеально, на данный момент это приемлемое решение.

0 голосов
/ 22 марта 2012

В инструментах разработчика есть кнопка обновления.Это перезагрузит дерево DOM без перезагрузки страницы.

Если вы выполняете изменения DOM с помощью JavaScript, они не отражаются в инструментах разработчика MSIE, если вы не нажмете кнопку обновления.Смотрите изображение ниже:

Refresh Button in MSIE developer tools

...