2012-01-27 3 views
1

Всякий раз, когда я пытаюсь найти слово, тело возвращенной страницы из AJAX, оно возвращает null. Вот мой код JQuery:Как найти элемент в обратном вызове AJAX с помощью JQuery?

$(document).ready(function(){ 
$("#button").click(function(){ 
    $.ajax({ 
      url: 'testpagec.php', 
      type: 'GET', 

      success: function(data) { 
       var test = $(data).find('body'); 
       alert(test.html()); 

      } 
     }); 
    return false; 
}); 
}); 

Это выглядит идеально на бумаге, но оно не работает должным образом. Есть идеи по исправлению этого? Благодарю.

+0

Используйте console.log вместо предупреждения и данные журнала, чтобы проверить, что возвращается. – Archer

+0

Что вы делаете с этими данными? В документе не должно быть двух элементов 'body', и я уверен, что им не разрешено встраиваться ... =/ –

ответ

4

То, что работает для меня это

var $data = $('<div>').html(data); 
$data.find('body'); // this works now 

Причина вышеуказанные работы, потому что body не был предком, следовательно find не работал, давая элемент корневого уровня данных будут обеспечивать поиск работы. Вы также можете использовать .filter.

$data.filter('body'); 
+0

Perfect. Благодарю. – Norse

+0

Другой вариант (тот же результат) - установить параметр 'dataType' в вашем вызове ajax на' html' – ryankeairns

Смежные вопросы