1

関数が起動されたときにターゲット要素の ID をキャプチャしようとしましたが、this キーワードが返されますundefined

--- HTML ファイル。--- (onclick 関数にパラメーターを追加できません)<a>ページ内に多数のタグがあり、ウィッチ<a>タグがクリックされたことを特定したい。

<a href="#some_links" id="element_id" onclick = "object.pageName.functionName('parms1', 'parms2', 'parms3')">Get this object</a>

<a href="#some_links" id="second_element_id" onclick = "object.pageName.functionName('parms1', 'parms2', 'parms3')">Get this object</a>

--- .js ファイル ---

object.pageName.functionName = function(a, b, c){
    alert(this); // returns 'undefined'
}
4

1 に答える 1

3

これは、ここ StackOverflow で非常によくある質問です。

要するに、 onclick は匿名関数にラップされます (これは にアクセスできますthis。それを渡す必要があります。

--- HTML ファイル。---

<a href="#some_links" id="element_id" onclick = "object.pageName.functionName(this, 'parms1', 'parms2', 'parms3')">Get this object</a>

--- .js ファイル ---

object.pageName.functionName = function(self, a, b, c){
    alert(self); // returns 'undefined'
}

別の方法は次のとおりです。

object.pageName.functionName = function(a, b, c){
    // Downside of this way, you can only use this function for one element.
    self = document.getElementById("element_id");
    alert(self);
}
于 2012-09-19T07:22:59.523 に答える