Не могу запросить $ .post возвращенные данные - PullRequest
1 голос
/ 04 декабря 2011
 $.post( url, JSON_POST,
    function( data ) {
      var content = $( data );
          var content = $( data ).find( '#json' );
        console.log(data);
           console.log(content);
      }
    );

Результат первого файла console.log:

<div id="json">{"status":1,"message":"Reply submitted successfully."}</div> 
<div id="test">sdfsafdsfds</div>

Но по какой-то причине второй журнал возвращает пустой массив. Я пытаюсь запросить HTML-код внутри переменной данных, но результат всегда равен нулю.

Я бы очень хотел помочь мне с этим. Я просмотрел руководство по $ .post, но ничего не сказано об этой проблеме.

P.S Я использую JQUERY 1.7

Ответы [ 2 ]

3 голосов
/ 04 декабря 2011

find ищет потомков выбранных элементов.В вашем случае оба элемента не имеют потомков, не говоря уже о ID json.

Вместо этого вы ищете конкретный элемент из выбранных.В этом случае вы должны filter [документы] текущие элементы:

var content = $(data).filter('#json');
1 голос
/ 04 декабря 2011

вы используете элемент контейнера в XML? может быть, это является причиной проблемы.

Вы ДОЛЖНЫ использовать корневой элемент в XML для получения правильного анализа. Таким образом, ваш XML-ответ должен выглядеть так:

<root>
    <div id="json">{"status":1,"message":"Reply submitted successfully."}</div> 
    <div id="test">sdfsafdsfds</div>
</root>

элемент <root> может быть любым, например: <foo> или <div>


Да, это ваша проблема.

Попробуйте это в консоли javascript:

var asd = '<div id="json">{"status":1,"message":"Reply submitted successfully."}</div><div id="test">sdfsafdsfds</div>'

console.log($(asd).find("#json")) > []
console.log($("<root>"+asd+"</root>").find("#json")) > [<div id="json">{"status":1,"message":"Reply submitted successfully."}</div>]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...