2016-05-16 4 views
0

別のajax関数を使用して以前にロードされたdivにajax経由でコンテンツをロードしようとしています。いずれにせよ、それらはすべて同じ内容でロードされるか、まったくロードされません。私はそれが本当にシンプルな何か私は行方不明であると確信しています - どんな助けも大歓迎です。JQuery divセレクタが予期した通りにトラバースされない

のAjax機能:

$(document).on('click', '.btn.btn-clearview.loadSubresults', function() { 
$.ajax({ 
    type: "POST", 
    url: "loadData.php", 
    data: $(this.form).serialize(), // serializes the form's elements. 
    dataType: 'json', 
    success: function(data) 
    { 
     console.log(data); 
     $(this).closest('.wrapper').children('.resultExpander').html(data); // Should be doing something but nothing is happening (OPTION 1) 
     //$('.resultExpander').html(data); // Load the response from the PHP into the HTML (OPTION 2) 
    }, 
     error: function (xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     alert(thrownError); 
     } 
}); 

このすべてが一緒に引っ張る方法:

ユーザーは、メインの結果ページをロードする - >は、検索ボタンをクリックするとAjaxを経由して、結果をロードします。この結果には "result"というクラスのdivがあり、このdivのインスタンスが複数存在します。

トラバースルール(https://learn.jquery.com/using-jquery-core/traversing/)を使用して、同じクラス名が使用されていても、必要なdivをターゲットにすることができます。

Firefoxの

なしのコンソールからエラーメッセージ/情報 - 私はオプション1

感謝を使用している場合だけロードされません。 Ajaxは、あなたが、 `$(この)` Ajaxの成功の内側にアクセスするには、 `.btn.btn-クリアビューを使用することはできません成功

+0

の内側にそれを通じて呼び出す前に変数に –

+0

@のような変数に代入する前に、 RavishaHeshええ、私はあなたがそれを持っていると思います。これを回答として追加して、OPが問題を解決すればそれをチェックすることができます。 – gibberish

+0

@Ravisha:それはトリックをするように見えました!ご協力いただきありがとうございます。私はあなたが成功コードの中で$(この)を使うことができないと言ったことを知っているのを知っています...なぜこれが大事なのですか? – alpharomeo

答えて

1
$(document).on('click', '.btn.btn-clearview.loadSubresults', function() { 
    $_this = $(this); 
    $.ajax({ 
    type: "POST", 
    url: "loadData.php", 
    data: $(this.form).serialize(), // serializes the form's elements. 
    dataType: 'json', 
    success: function(data) 
    { 
     $_this.closest('.wrapper').children('.resultExpander').html(data); 
    }, 
    error: function (xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     alert(thrownError); 
    } 
    }); 
}); 

割り当て$(this)

。 loadSubresults`です。 $ _this.closest( '。wrapper')。children( '。resultExpander').html(data); `
関連する問題