0

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);

//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が body の直接の子で#fk-mainbody-idあり、孫であることです。

フィルターは、ツリー全体をドリルダウンすることになっていませんか? これは、返された応答をラップする方法と関係があると思いますか? この方法でネストされた要素にアクセスするにはどうすればよいですか?

4

1 に答える 1

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
于 2012-12-20T06:42:56.677 に答える