Почему работает .html, а не innerHTML или appendChild

Я пытаюсь добавить ответ ajax в div (это HTML-код с таблицами, формами и т.д.).

В FF innerHTML работает отлично, но в IE это дает мне неизвестную ошибку.

Я пробовал много вещей, но я только получил его работу, когда я добавил jQuery и запустил метод .html на div, я хочу, чтобы код был вставлен.

Кто-нибудь хочет объяснить, почему это работает, а не просто innerHTML? Я попытался взглянуть на код .html(), но я думаю, что я не очень люблю JS, потому что я не понимал, что он делает.

Ответ 1

IE имеет несколько документов (pre | таблица (thead, tbody, tr, tfoot) | div | select) .innerHTML ошибки.

Таким образом, библиотеки, такие как jQuery, отмените эти ошибки для вас, применив обходные пути, где это необходимо для IE.

Что касается вашей конкретной ошибки..., не видя кода, трудно сказать.

Установив .innerHTML в pre, некоторые div, выберите (если он завершится с ошибкой), но установка .innerHTML для определенных элементов таблицы (в некоторых версиях IE) фактически вызовет ошибку/исключение.

Примечание. Проблема с настройкой .innerHTML для div очень специфична в условии и возникает только в IE6 и IE7.

Ответ 3

Просто используйте jQuery и забудьте обо всех ужасных проблемах с кросс-браузером - вы не вернетесь!

Ответ 4

IE суетливый об изменении <table>s из javascript. Я столкнулся с проблемой прежде, если я не укажу таблицу до последней детали, включая тег <tbody>.

Ответ 5

У меня такая же проблема каждый день. Попробуйте с .innerText instad.innerHTML, который решит вашу проблему. Ответ: Javascript анализируется по-разному в IE и FF.