jQuery $ .post返回对象长度:0

时间:2015-08-07 19:54:55

标签: javascript jquery ajax

我试图使用AJAX制作分页脚本,但它拒绝获取正确的ID。我的代码在这里

$(document).on('click','#pagination a',function(e){

    e.preventDefault();
    var link = $(this).attr('href');

    var $content = '.everything';

    $.post(link+'', function(data){
        var $new_content = $($content,data);
        console.log($new_content);
    },'html');
});

这将在我的控制台中返回以下内容:

Object { length: 0, prevObject: Object, context: undefined, selector: ".everything" }

对象.everything绝对存在于我的DOM中,因为如果我只是console.log(data);,则会显示该项目。该元素包含大约2000个字符。

当我尝试通过console.log($('.logo',data));

尝试抓取内容较少的元素时,问题不会发生

1 个答案:

答案 0 :(得分:3)

当您在HTML片段中查找元素时,它将查看最外层元素。

例如$('span', '<div><span></span></div>')返回包含span元素的jQuery对象,但$('div', '<div><span></span></div>')返回一个空的jQuery对象。

如果要在搜索中包含最外层元素,请将其包装在另一个元素中:

var elements = $('<div>').append(data);
var $new_content = elements.find($content);
console.log($new_content);