14

たとえば、呼び出し元の要素の属性を取得するために多くの要素で使用される関数が必要です。

function example(){
    var name = //name of the calling element "$(this).attr('name')"
}
<button name="somename1" onclick="example()">Button1</button>
<button name="somename2" onclick="example()">Button2</button>

したがって、「somename1」という名前のボタンが関数を呼び出すと、変数「name」が「somename1」に割り当てられ、「somename2」がそれを呼び出すと、変数「name」が「somename2」に割り当てられます。

4

7 に答える 7

25

これを使用:

function exampleFunction(exampleElement) {
    var name = exampleElement.name;
}

<button name="somename1" onclick="exampleFunction(this)">Button1</button>
<button name="somename2" onclick="exampleFunction(this)">Button2</button>

しかし、jquery を使用する場合は、次のことができます。

$('button').click(function() {
  var name = $(this).attr('name');
});

onclick属性なし。

于 2012-09-17T09:28:15.777 に答える
3

これを実現するために実際に使用する必要はありません。イベント オブジェクトthisのプロパティを使用するだけで済みます。targetこの手法も jquery 固有ではなく、標準の JavaScript です。

function handleClick(evt){
    var name = evt.target.name;
}
于 2012-09-17T09:27:28.310 に答える
2

jsBin デモ

<button name="somename1">Button1</button>
<button name="somename2">Button2</button>
function example(){
   var myName = this.name;
   alert(myName);
}

$('button[name^=somename]').click(example);

または単に好き:これ

$('button[name^=somename]').click(function(){
   var myName = this.name;
   alert(myName);
});
于 2012-09-17T09:30:34.237 に答える
0

jQuery イベント バインディングを使用します。

$(document).ready(function(){
    $(document).on('click', 'button', example);
});
function example(){
    var name = $(this).attr('name');
}
于 2012-09-17T09:29:35.063 に答える
0

$(this).attr('name')- これは、jquery bind/on/click などを使用している場合にのみ機能します。

HTML を次のように変更できます。

<button name="somename1" onclick="example(this)">Button1</button>

および JS コード:

function example(element){
    var name = $(element).attr('name');
}
于 2012-09-17T09:27:40.913 に答える
0

jQuery を使用してイベント ハンドラーをバインドする場合はthis、イベントをトリガーした要素を参照します。クリックしたときにその関数を実行するすべての要素に、次のようにクラスを追加します。

<button name="somename1" class="example">Button1</button>
<button name="somename2" class="example">Button2</button>

次に、jQuery を使用して、イベント ハンドラーをこれらの要素にバインドします。

$('.example').on('click', example);
于 2012-09-17T09:27:53.343 に答える