как разобрать ответ jquery ajax xhtml? - PullRequest
4 голосов
/ 14 апреля 2010

Извините, если это было опубликовано много раз. Но я пробовал много вариантов, и это все еще не работает. HTML возвращается из JQuery AJAX, и я пытаюсь удалить верхний и нижний колонтитулы из ответа, используя:

// none of these work for me
$("#content", data);
$("#content", $(data));
$(data).find("#content").html()

У меня есть точка останова - ответ для проверки наличия #content проверенным $ (data) и использованием оповещения для распечатки текста данных. Я также попытался использовать "body" или "a" в качестве селекторов, но они всегда возвращаются как неопределенные.

В этом посте я читал, что вы не можете получить полный документ XHTML: текст ответа jquery ajax parse . Но я больше не могу найти цитату ответа, может быть, он устарел?

Кто-нибудь сталкивался с этой проблемой?

Большое спасибо, Стив

Ответы [ 6 ]

4 голосов
/ 07 мая 2011

это работает для меня:

$(data).filter("#content");
2 голосов
/ 13 августа 2010

Работает, когда в полученном документе есть тег <div>.

например. <body><div> your content </div></body>.

См. Очень простое доказательство концепции .

2 голосов
/ 14 апреля 2010

Вам нужен div, чтобы прикрепить ваши данные. Нравится $("#response").replaceWith($(data).find('#content')); Это должно работать

1 голос
/ 14 апреля 2010

Данные, которые вы получаете от вашего вызова AJAX, не являются частью вашего дерева DOM, поэтому вы не можете использовать вызовы функций JQuery для манипулирования ими. Вы можете использовать функции манипулирования текстом, вы можете использовать JSON или также можете прикрепить свой ответ к вашему DOM.

0 голосов
/ 18 июля 2016

Вы ДОЛЖНЫ гарантировать, что ваш HTML-файл был хорошо отформатирован.

Попробуйте самый простой HTML

<html>
<head>
<title>title here</title>
</head>
<body>
<div>
    <div>hello</div>
        <span id="s">span content</span>
    </div>
</body>

0 голосов
/ 15 апреля 2010

Вы используете метод get? В качестве альтернативы вы можете использовать метод загрузки jQuery, где вы можете предоставить фрагмент страницы для загрузки.

Например, чтобы загрузить содержимое div из хорошо сформированного HTML-документа, вы можете использовать

$ ("# div-to-load-to"). Load ("html-doc-to-load-from.html #content", function () { //сделай что-нибудь });

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