osgsm.io
HomeNotesJavaScript の target と currentTarget の違い

JavaScript の target と currentTarget の違い

Published Feb 15, 2025
Updated Mar 12, 2025

例えば、addEventListener() で特定の要素がクリックされたとき、コールバック内でその要素を取得したい場合、 currentTarget もしくは target プロパティを使える。

注意点として、target はクリックされた要素を返すが、必ずしもその要素がイベントリスナーにアタッチされているとは限らない。

例えば、次のようなボタンがあったとする。

<button>
  Hello <span>world!</span>
</button>

そして、次のようにイベントリスナーを定義する。

const button = document.querySelector('button');
 
button.addEventListener('click', (e) => {
  console.log(e.target);
  console.log(e.currentTarget);
})

ここで e.target は、 <button> 要素もしくは <span> 要素を返す可能性がある。どちらが返されるかはユーザーが実際にクリックした場所による。

一方、 e.currentTarget は、イベントリスナーにアタッチされている要素を返すので、ユーザーがボタンのどこをクリックしようが、常に <button> を返す。


参考