2011-12-24 10 views
0

私の目標は、アンカータグのテキストをクリックしてそれを取得することです。私はこれがインラインではない関数の中にあることを望みます。例

function getText(){ 

alert($('this.a').text()); 

} 

私は上記が動作しないことを知っています。私はそれを試しました。

クリックしたときにすべての 'a'要素で機能したいので、これはidではありません。私が使用する場合:

私のページのすべての 'a'タグ内にすべてのテキストを返します。私が達成しようとしているのは、単にクリックしたアンカータグのテキストだけを返すことです。私はそれが 'a'タグと共に$(これ)を使用することと関係があると思うが、私はそれを理解しているようには見えない。

もう一度私のページのすべてのタグに対してこの関数を呼び出すことができるように、各IDの関数を記述する必要がなく、「this」を使用したいのです。ありがとうございました。

答えて

1

あなただけ$(this).text()をしたい:

function getText() { 
    alert($(this).text()); 
} 

そして、もちろん、あなたがそうのようなあなたのイベントを処理する必要があります。

$('a').click(getText); 
0

それはとなりますようそれは別の関数としてちょうど同じですインライン1で:

$("selector_for_the_anchors_in_question").click(clickHandler); 

function clickHandler() { 
    alert($(this).text()); 
} 

jQueryは、ハンドラが呼び出されたときに、thisは、ハンドラがフックされた要素に設定されています。もちろん、$()(またはのnoConflictモード)を使用する要素のjQueryラッパーを取得する必要があります。

0

このjQueryのは十分です:

$('a').click(function() { 
    alert($(this).text()); 
}); 

JSFiddle

0

あなたは何とかクリックイベントに関数をバインドする必要があります。

function getText(){ 
    alert($(this).text()); // `this` is the element clicked 
    return false; // prevent navigating 
} 

$("a").click(getText); // bind function to all <a> elements 

このようにインラインではありませんが、正直なところ私はこのような理由はありません。

関連する問題