2012-01-27 69 views
1

每当我尝试从AJAX中找到返回页面的主体时,它将返回null。这是我的JQuery代码:如何使用JQuery在AJAX回调中查找元素?

$(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 2012-01-27 20:12:54

+0

你用这些数据做什么?一个文档不应该有两个'body'元素,我敢肯定他们不允许嵌套... =/ – 2012-01-27 20:24:21

回答

4

对我来说是什么工作原理是

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

究其原因,上述工作是因为body不是一个祖先,因此find没有工作,给数据根元素,将保证找到工作。您也可以使用.filter

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

完美。谢谢。 – Norse 2012-01-27 20:28:01

+0

另一个选项(相同的结果)是将ajax调用中的'dataType'设置设置为'html' – ryankeairns 2012-01-27 20:28:59