Jquery filter()只允许我访问通过ajax调用检索的响应的顶级元素

Jquery filter()只允许我访问通过ajax调用检索的响应的顶级元素,jquery,ajax,Jquery,Ajax,我正在使用ajax调用检索html响应,然后尝试使用以下$(response.filter())检索响应中的嵌套元素 这是我检索的页面,也是我试图筛选的元素: //ajax调用 $.ajax({ type: "GET", url: "http://www.flipkart.com/search-books?query=jQuery+Cookbook&from=all&searchGroup=all" }).done(fnSuccess(prod_dts)).fail(

我正在使用ajax调用检索html响应,然后尝试使用以下
$(response.filter()
)检索响应中的嵌套元素

这是我检索的页面,也是我试图筛选的元素:

//ajax调用

$.ajax({
   type: "GET",
   url: "http://www.flipkart.com/search-books?query=jQuery+Cookbook&from=all&searchGroup=all"
}).done(fnSuccess(prod_dts)).fail(fnFail);
//成功

var fnSuccess = function(prod_dts) {
return function(response){
           //this returns results
            alert($(response).filter('div.fkart').html());

            // but this does not
            alert($(response).filter('#fk-mainbody-id').html());


  } // endof return
} // endof function
唯一的区别是
div.fkart
是body的直接子对象,而
#fk mainbody id
是孙辈


过滤器不应该一直钻到树上吗?我猜这与我如何包装返回的响应有关?如何以这种方式访问任何嵌套元素?

过滤器用于将匹配元素集减少为与选择器匹配或通过函数测试的元素集。如果你想向下钻取,使用find。i、 e

var fnSuccess = function(prod_dts) {
  return function(response){
        alert($(response).find('div.fkart').html());
        alert($(response).find('#fk-mainbody-id').html());
  } // endof return
} // endof function
find()
…我想这就是你要找的