【问题标题】:How to find an element in AJAX callback with JQuery?如何使用 JQuery 在 AJAX 回调中查找元素?
【发布时间】:2012-01-27 20:10:25
【问题描述】:

每当我尝试查找从 AJAX 返回的页面的正文时,它都会返回 null。这是我的 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;
});
});

这在纸面上看起来很完美,但它并没有按预期工作。关于解决这个问题的任何想法?谢谢。

【问题讨论】:

  • 使用 console.log 代替 alert,并记录数据以检查返回的内容。
  • 你在用这些数据做什么?一个文档不应该有两个 body 元素,我很确定它们不允许嵌套... =/

标签: jquery ajax callback find


【解决方案1】:

对我有用的是这个

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

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

$data.filter('body');  

【讨论】:

  • 另一个选项(相同的结果)是将您的 ajax 调用中的 dataType 设置设置为 html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
  • 2010-10-01
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多