2010-12-07 4 views
6
$(document).ready(function() { 
      $(".po").click(function(){ 
       var po = $(this).text(); 
       var dataString = 'po='+ po; 

       $.ajax 
        ({ 
        type: "GET", 
        url: "projectitems.php", 
        data: dataString, 
        cache: false, 
        success: function(html) 
         { 


$(this).closest(".resultsItems").html(html); 
         } 
        }); 
      });   
     }); 

$(this).closest(".resultsItems").html(html);正確に(これ)を参照していますか?返されたajaxの結果を.resultsItemsという<td>に追加しようとしていますが、最初のセレクタの下にあるものだけにしますか?これは可能ですか?

jQueryで何を意味するのか尋ねていないことを明確にするために、私は上記のコードで何を参照しているのかを尋ねています。

+0

ない本当に$(".po")オブジェクトの重複を参照しますthat.closest()...を使用している場合はどのような私のコードでこれを参照しています。 – benhowdle89

+2

クイックヒント:そのコードブロック内の特定の '' this ''を参照する必要がある場合は、適切な文脈でこれを追加できます: 'var t = this; '関数呼び出しをさらに下げるには、' $(this) 'の代わりに' $(t) 'を使うことができます。 –

+2

@meder - これは重複していない、私の答えを見てください。 –

答えて

9

は、$.ajax()設定オブジェクトを指します。あなたが望む結果を得るためには、このようなcontextオプションを使用してthisを維持する必要があります:

$.ajax({ 
    context: this, 
    type: "GET", 
    url: "projectitems.php", 
    data: dataString, 
    cache: false, 
    success: function(html) { 
    $(this).closest(".resultsItems").html(html); 
    } 
}); 
+3

バー、それは私の答えをまとめているように、オレンジバーを嫌っていた。 –

+0

ありがとう!これは、正しく質問するのではなく、自分の質問を「スキャン」したすべての人と重複しているわけではありません – benhowdle89

3

jQueryのサイトから:

それらのすべてのためのthisオブジェクトが 設定で$.ajaxに渡さcontextプロパティ に対象となります。 が指定されていない場合は、 Ajax設定への参照が になります。

+0

jQueryサイトでこれを探しました。この見積もりはどこにありますか? – Hogan

+0

@Hogan:http://api.jquery.com/jQuery.ajax/ - コールバック関数の段落です。 –

+0

@Hogan Googleではフレーズの一部を引用符で囲んだ文字列として扱い、[jQuery.ajax()のドキュメント](http://api.jquery.com/jQuery.ajax/)にリンクします。 – Phrogz

0

あなたはthisキーワードhere

について詳細に読むことができます基本的には、あなたのケースでは、それが参照あなたのajax呼び出しでsuccessイベントを引き起こしたウィンドウオブジェクトであるため、ウィンドウオブジェクトです。 ただし行うことによって、単にAJAX呼び出し上記$(".po")の範囲をキャプチャすることができます。

var that = this; 

を次に、あなたは私が求めているよう

関連する問題