Javascript innerHTML / jQuery .html () ошибка отображения IE - добавление таблицы в div - PullRequest
0 голосов
/ 26 октября 2011

Я использую AJAX-вызов скрипта, который генерирует таблицу HTML.

После получения HTML-кода таблицы из выходных данных сценария я заменяю целевой HTML-контейнер div новым HTML-кодом.

например. $('#table_container').html(data); или ... document.getElementById('table_container').innerHTML(data);

В Firefox таблица отображается внутри div так, как я хочу.

В Internet Explorer отображается таблица, а затем под ней появляется дополнительный текст, обычно 10-20 символов, взятых из (казалось бы) случайного места в таблице.

Я проверил HTML из вызова ajax через валидатор W3C. Я использую тип документа по типу моей страницы:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Почему IE может отображать этот дополнительный текст?

Ответы [ 4 ]

2 голосов
/ 26 октября 2011

Мне лично всегда повезло больше:

$("#table_container").empty();
$("#table_container").append(data);
0 голосов
/ 27 октября 2011

Спасибо всем за предложения.

Как оказалось, проблема была из-за пустых ячеек в таблице.

Это приведет к ошибкам:

<td></td>

Это приемлемо:

<td> </td>

Странная вещь (для меня) состояла в том, что если бы я сбросил HTML-код в плоский файл .html и просмотрел его, проблем не было бы. Но когда я использовал JS для добавления этой же разметки HTML в div, возникает проблема.

C'est la IE! : -)

0 голосов
/ 26 октября 2011

звучит так, как будто в вашей строке есть какой-то текст, нарушающий html таблиц.

Попробуйте использовать

$string = htmlentities($string);

для строки, находящейся в ячейках таблицы ......

0 голосов
/ 26 октября 2011

Я не знаю, каков источник основной проблемы, и я не знаю, поможет ли это, но вы можете попробовать использовать remove () и appendTo () и посмотреть, правильно ли IE обрабатывает это.По моему опыту это обычно работает лучше.

$(data).appendTo($('#table_container'));

Кроме того, если есть возможность ссылки на реальный сайт, я мог бы помочь в дальнейшем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...