Сгенерированный AJAX <tr>становится просто текстовым содержимым в Firefox / Chrome - PullRequest
0 голосов
/ 18 августа 2011

Сначала я запрашиваю некоторый HTML через AJAX.
Пример ответа:

<tr class="recordRow">
  <td class="first recordType" id="recordType">holder</td>
  <td class="recordAmount" id="recordAmount">holder</td>
  <td class="recordDescription" id="recordDescription">holder</td>
  <td class="last recordDate" id="recordDate">holder</td>
</tr>

И я пытаюсь создать объект DOM.

var d = document.createElement("div");
d.innerHTML = templateListItem;
alert(d.innerHTML);
alert(d.firstChild);

Я думал, что этоследует добавить строку к <div>, но я получаю только текст.Когда я добавляю ответ к элементу, я получаю только текстовое содержимое, например, holder holder holder holder.

Почему HTML кажется сжатым в Firefox и Chrome?

Добавлено: Если примерОтвет выглядит так:

<tr><td><span>something here..</span></td></tr>

Он будет предупреждать «HTMLSpanElement» в Firefox.Все теги, такие как tr / td / удалены.

Ответы [ 3 ]

1 голос
/ 18 августа 2011

Если вы пытаетесь вставить <tr> в <div>, возможно, что браузер не отобразит это должным образом, поскольку это недопустимый HTML. Попробуйте поместить ваш <tr> в элемент <table> или <tbody>, вложенный в элемент <table>.

0 голосов
/ 18 августа 2011

Если ваш экземпляр XHR равен var xhr = new XMLHttpRequest(), обязательно используйте xhr.responseXML вместо xhr.responseText.

0 голосов
/ 18 августа 2011

Если вы перетащите этот ответ с сервера куда-то, это будет просто текст, как вы узнали.Если вы можете, вы можете изменить код AJAX, чтобы он возвращал JSON, расшифровать его и превратить в объект.

Что касается удаляемых тегов, я где-то читал о том, что браузеры делают это, но вполне вероятно,ошибаться;В этом случае AJAX потерпит неудачу.

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