我正在使用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
是孙子。
过滤器是不是应该一直钻到树上?我猜这与我如何包装返回的响应有关?如何以这种方式访问任何嵌套元素?
答案 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