Не удается обновить элемент DOM с помощью возвращаемых данных AJAX в jQuery - PullRequest
0 голосов
/ 08 октября 2009

Я делаю простой пост-запрос AJAX в jQuery на другую страницу моего сайта, чтобы получить ответ XML-документа. Я помещаю ответ в элемент pre с включенной подсветкой синтаксиса. Ответ приходит нормально (я могу alert это), но он не добавляется к элементу pre, когда я пытаюсь назначить его в функции handlResponse с помощью jQuery.

<code><head>
<script>
   ...
   function handleResponse(response, status)
   {
      $("#output").text(response);
   }
   $.post(url, data, handleResponse, "text");
   ...
</script>
</head>

...

<pre id="output">

Просто чтобы прояснить ситуацию, приведенный выше код javascript находится в функции готовности документа jQuery. Любая помощь определенно будет оценена.

Ответы [ 3 ]

1 голос
/ 09 октября 2009

Три вещи:

  1. Правильно ли передан ответ? Проверьте, сделав оповещение об ответе из самой функции.

  2. Правильно ли вызывается функция? Проверьте, сделав это предупреждение, не связанное с переменной ответа (alert("Yo!")).

  3. Правильно ли вставлен текст? Я могу сказать, что это должно работать, но ради полной отладки, добавьте троичный как это:

    var preText = (response != "") ? response : "The problem is with the reponse";
    
1 голос
/ 09 октября 2009

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

$("#output").html(response);

РЕДАКТИРОВАТЬ: Если вы думаете, что побег является проблемой, следующее должно избежать его достаточно хорошо, чтобы отобразить ...

response = response.replace(/</g, "&lt;");
$("#output").html(response);
0 голосов
/ 09 октября 2009

Видимо, это плохой вопрос. Я использую javascript lib SyntaxHighlighter и предварительно загрузил подсветку синтаксиса для тега pre, который я пытался использовать. Мое решение состояло в том, чтобы удалить тег и динамически создать его при получении ответа ajax. Это сработало хорошо, за исключением того, что я пытаюсь определить, как загрузить подсветку для динамически добавляемого элемента dom.

Спасибо за ответы.

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