0

重複の可能性:
関数が起動されたときにターゲット要素のIDを取得しようとしましたが、thisキーワードが返されますundefined

---HTMLファイル---

<a href="#link_1" id="id_0" onclick = "getElement('parms1', 'parms2', 'parms3')">0</a>
<a href="#link_2" id="id_1" onclick = "getElement('parms1', 'parms2', 'parms3')">1</a>
<a href="#link_1" id="id_2" onclick = "getElement('parms1', 'parms2', 'parms3')">2</a>

---Jsファイル---

function getElement = function(a, b, c){
    // trying to get the clicked element
    alert(this); // returns 'undefined'
}

:onclick関数でパラメーターを変更/追加/削除することはできませんが、jsファイルでパラメーターを追加/削除することはできます

問題:onclick関数パラメーターを変更せずに、どの要素がクリックされたかを識別する方法は?

4

1 に答える 1

1

簡単な修正:

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

<a href="#link_1" id="id_0" onclick = "getElement('parms1', 'parms2', 'parms3',this,event)">0</a>

そして、関数の定義は次のとおりです。

//function getElement = function(){};doesn't really make sense...
function getElement (a, b, c,clicked,e)
{
    alert(clicked.id);//alerts id of clicked link
    alert((e.target || e.srcElement).id);//via the event object
}

したがって、選択はあなた次第であり、関数にパスthisして渡すか、または単に、または単に、そしてあなたは行ってもいいです。eventeventthis

ただし、このタイプのイベントの委任を検討することをお勧めします。

于 2012-09-19T08:40:19.727 に答える