2016-03-30 10 views
0

私はAjaxからこのphpファイルを呼び出して、このphpファイルに必要なjavascriptコードを記述しています。Ajaxでjavascriptで 'this'を使用する

<div class="add_people_invite"> 
    <button class="btn btn-default add_connection" id="right_connection_request" onclick="SentRequestMouseUpRight(event,{{ $peopleMayKnow->id }})"> 
     <span>My Text</span> 
    </button> 
</div> 

Javascriptのコード:

<script> 
    function SentRequestMouseUpRight(event, user_id) { 
     if (event.which == 1) { 
      alert(); 
      $("#right_connection_request span", this).text("My NEW Text"); 
     } 
    } 
</script> 

JavaScriptでアラートが働いているが、それは私の新しいテキストにテキストを変更していないと私はthisを削除してから、私はこのコード$("#right_connection_request span").text("My NEW Text");を実行する場合は、テキストを変更します。

+3

どうしてここに「this」が必要なのですか?一意でなければならないIDやIDを使用しています。 – j08691

+0

これは、ajaxとはaynthing *していないようです。 – Bergi

+0

'this'がクリックされた要素を参照するようにしたい場合は、' .call(this、... ' – Bergi

答えて

1

キーワードthisの代わりにevent.targetを使用できます。 Hereは同じことを示すためのフィドルです。

function SentRequestMouseUpRight(event, user_id) { 
    if (event.which == 1) { 
    $(event.target).text("My NEW Text"); 
    } 
} 
+0

$(event.target).setAttribute( 'onclick'、 'writeLED(1,1)')をonlick関数に変更したい場合は、これも機能します。 –

0

あなたは、この最初のを見てみたいことがあり、$(this +"selector") ? $("img",this) possible?

それは一つの方法を動作しますが、他ではない、私は本当に私たちはjqueryののバージョンを調べる必要がありますあなたの例でlookignで言う傾ける理由として答えあなたはいくつかの他の要因を使用しています。

+0

私はこれも試しました:$(" span "、this).text(" My New Text ");しかし動作しません。 –

0

あなたはur javascriptを変更したくない場合はhtmlを変更することもできます。

<div class="add_people_invite"> <button class="btn btn-default add_connection" id="right_connection_request" onclick="return SentRequestMouseUpRight(this,{{ $peopleMayKnow->id }});"> <span>My Text</span> </button> </div>

'これは' どちらの場合も、ウィンドウオブジェクトです。