jQuery .find() в ответе сервера

Я пытаюсь получить текст внутри определенного div в ответе сервера. Я использовал Firebug, чтобы посмотреть ответ, и я вижу свой элемент в возвращаемом коде, но по какой-то причине я могу заставить jQuery захватить его. Вот что я использую:

var response = $('<div />').html(serverData);
$('#uploadedFiles').html($(response).find("#created").text());
alert($(response).find("#created").text());

Попытка просто ничего не возвращает, ни текста, ни чего-то еще. Я делаю это правильно?

Примечание. Ответ сервера исходит не от функции jQuery ajax, а от подключаемого модуля jQuery SWFUpload, но имеет ли это значение?


person Nic Hubbard    schedule 14.10.2009    source источник
comment
что говорит предупреждение (serverData)?   -  person Jan Willem B    schedule 14.10.2009
comment
Я думаю, что это та же проблема, что и здесь: stackoverflow.com/questions/1508095/   -  person k0ni    schedule 14.10.2009
comment
ответ var содержит объект jquery. Вы знаете об этом?   -  person Jan Willem B    schedule 14.10.2009


Ответы (1)


Когда вы запускаете код? Если вы запустите его до того, как будет создан элемент uploadedFile, код его не найдет.

Я протестировал это, и он отлично работает, он предупреждает «asdf», а затем заменяет «test» на «asdf» в элементе div:

<script type="text/javascript">

$(function(){
    var response = $('<div />').html('<div id="created">asdf</div>');
    alert(response.find("#created").text());
    $('#uploadedFiles').html(response.find("#created").text());
});

</script>

<div id="uploadedFiles">test</div>

Обратите внимание, что response уже является объектом jQuery, поэтому $(response) является избыточным.

person Guffa    schedule 14.10.2009
comment
Я использую это в функции uploadSuccess, которая использует параметр serverData. Ваш пример просто находит какой-то идентификатор местоположения, будет ли он отличаться от захвата его из параметра serverData? - person Nic Hubbard; 14.10.2009
comment
А, у меня заработало. Я провел еще несколько тестов, и наличие целого html-документа все испортило. Я исправил свой скрипт, чтобы он просто возвращал код в теге «form», и он отлично работает. Спасибо. - person Nic Hubbard; 14.10.2009
comment
@Nic: Да, если вы передадите любой сложный HTML-код в метод $, он создаст элемент, назначив его innerHTML элемента div, поэтому вы не сможете использовать полный HTML-документ. - person Guffa; 15.10.2009