2016-09-20 3 views
0

動的ロードされたコンテンツとして返される要素をajax $.postメソッドでループしようとしています。コードは次のとおりです。

$.post(ajax_url, {action: 'filter-search-results', term_id: term_id}, function (res) { 
    $('.job_listings').empty(); 
    $('.job_listings').html(res); 
    $('.hotel-rate').each(function (i, obj) { 
     //... 

ただし、each機能は実行されていません。

私はbodyのクリックイベントをトリガした場合、それは動作します:

$.post(ajax_url, {action: 'filter-search-results', term_id: term_id}, function (res) { 
    $('.job_listings').empty(); 
    $('.job_listings').html(res); 
    $(document).on('click', 'body', function() { 
     $('.hotel-rate').each(function (i, obj) { 
      //... 

それは正常に動作します。しかし、私はeachをどんなイベントでもバインドしたくありません。イベントをトリガーすることなくeach関数を実行するにはどうすればよいですか?あなたはこれをしようとしないのはなぜ

+0

投稿の結果の中でループしようとしている '.hotel-rate'要素はありますか?そうであれば$(res)オブジェクトにあり、$オブジェクトにはありません – Draykos

+0

はい、投稿の結果です。投稿要求からの応答後、HTMLコンテンツが変更されます。ここで 'res'は' HTML'コンテンツのみを生成します。 – user3384985

+0

質問の説明を編集しました – user3384985

答えて

0

に説明されているだけのようにあなたはそれが移入だ後にリストオブジェクトの仕事をループしようとしたことがありますか?

$.post(ajax_url, {action: 'filter-search-results', term_id: term_id}, function (res) { 
    var $jobs = $('.job_listings').html(res); 
    $jobs.find('.hotel-rate').each(function (i, obj) { 
     //... 
関連する問題