【javascript】onclickされた時のthis(自分自身)を取得したい。

こっちのほうに考察がありますが。彼と一緒に考えた際に考えたこととかを以下に。

<a id="testID" onclick="hoge()" href="javascript:void(0);">test</a>

で自分自身のidを取得したいときにぱっと思いつくのは以下

function hoge(){
alert(this.id);
}

とするとundefined(thisはwindow)なので

<a id="testID" onclick="hoge(this)" href="javascript:void(0);">test</a>
function hoge(this){
alert(this.id);
}

とする。でも引数書くのはなんかなーっとなったので。

function hoge(){
var e = (window.event)? window.event : arguments.callee.caller.arguments[0] ;
var self = e.target || e.srcElement;
alert(self.id);
}

こうしてみた。 ff3,ie7,operaで確認してみた。 IE Tabでは動いた。 IE TesterのIE8で動かない。


Tags:

 
 
 

6 Responses to “【javascript】onclickされた時のthis(自分自身)を取得したい。”

  1. Gravatar of Aries Aries
    13. 10月 2009 at 07:59

    【MH3】ボウガンしみゅ にコメントできないので。 雷迅砲サンダークルスのストック、氷結弾と電撃弾の装填数が逆です。 氷結弾1、電撃弾2が正しい。

  2. Gravatar of gecko gecko
    15. 10月 2009 at 10:41

    geckoです。 修正が遅くなり申し訳ありませんでした。 お時間があるときに確認お願いいたします。

  3. Gravatar of mh_skill mh_skill
    17. 10月 2009 at 17:47

    せっかくjQuery使っているので イベント操作メソッド使ってみてはいかがでしょう。

    ■html <a id=”testID” href=”void(0);” rel=”nofollow”>test</a>

    ■js $(“#testID”).click(function () { alert(this.id); });

  4. Gravatar of macky1207 macky1207
    19. 10月 2009 at 15:55

    mh_skill さんコメントありがとうございます。

    jQueryが使えない(わからない)という環境だそうで。 今回のものはjQuery使わない場合こうやるのがいいかな? という感じです。(addEventListenerも使わない。)

  5. Gravatar of 匿名 匿名
    4. 1月 2010 at 15:24

    個人的には、JavaScriptのフレームワークが使えない環境で、実務でやるなら、2番目でしょう。 最も簡単でコードも短いから。

  6. Gravatar of JavaScriptでクリックされたときにthisを関数内で取得する | Hack JavaScriptでクリックされたときにthisを関数内で取得する | Hack
    11. 11月 2015 at 15:16

    [...] 参考 http://gecko.hp2.jp/2009/10/09/%E3%80%90javascript%E3%80%91onclick%E3%81%95%E3%82%8C%E3%81%9F%E6%99%82%E3%81%AEthis%E8%87%AA%E5%88%86%E8%87%AA%E8%BA%AB%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E3%81%84%E3%80%82/ 私たちの仲間を募集 [...]

コメントをどうぞ