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

时间:2012-12-20 06:33:47

标签: jquery ajax

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

这是我检索的页面,以及我尝试过滤的元素:

// ajax call

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

// fnSuccess

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是身体的直接子女,#fk-mainbody-id是孙子。

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

1 个答案:

答案 0 :(得分:0)

过滤器用于将匹配元素集合减少为与选择器匹配的元素或传递函数的测试。如果你想深入使用find而不是。即。

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