8629


**質問**  
addEventListenerで、クリックした要素そのもの(id未指定)を受け取るには、どうすれば良いでしょうか？  
・渡す側で何とかしてループ処理するしかない？  
  

**現状**  
・onclick

[code]

    <div id="area">
      <button onclick="hoge(this);">1</button>
      <button onclick="hoge(this);">2</button>
    </div>
    
    <script>
      function hoge(obj) {
        console.log(obj);
      }
    </script>
    
[/code]

  
  
**やりたいこと**  
・addEventListenerで、クリックした要素(divではなくbutton)を受け取りたい

[code]

    <div id="area">
      <button>1</button>
      <button>2</button>
    </div>
    
    <script>
      function hoge() {
        console.log(this); 
        //ここでクリックした要素(divではなくbutton)を受け取りたい
      }
      var el = document.getElementById("area");
      el.addEventListener("click",hoge, false);
    </script>
    
[/code]

  
  
**その他**  
・buttonタグには、id名class名を付与しない  
・buttonタグは動的生成のため、階層構造は変化する(生成の度に前後にノードを挿入する可能性あり)


CC BY-SA 3.0
2015-04-01T00:17:53.377
8628
2015-04-01T00:41:35.450
7886
question
javascript
addEventListenerで、クリックした要素そのものを受け取りたい


イベントハンドラで Event
を受け取るようにすれば、[Event.target](https://developer.mozilla.org/ja/docs/Web/API/Event/target)
でイベントを発生させた要素を参照できます

[code]

    function hoge(e) {
      console.log(e.target)
    }
    
[/code]


CC BY-SA 3.0
2015-04-01T00:41:35.450
8629
2015-04-01T00:41:35.450
5575
8628
answer