⊗jsPmOEEE 419 of 505 menu

JavaScriptのEventオブジェクトにおけるイベント要素

オブジェクト Event は、イベントが発生した要素を取得することも可能にします。この要素はプロパティ target に含まれています。 this にこの要素が含まれているのに、なぜこれが必要なのでしょうか?

実際のところ、this は常に イベントがバインドされた要素を含みますが、プロパティ target は実際にクリックされた要素を含みます。 この実際の要素は this と一致することもあれば、一致しないこともあります。

例を見てみましょう。 div とその中に段落があるとします:

<div id="elem"> <p>text</p> </div>

divにイベントをバインドしますが、段落をクリックします。 段落はdivの中に含まれているため、段落のクリックは同時にdivのクリックでもあることは明らかです。

上記の場合、プロパティ target には、イベントが発生した最終的なタグ、つまりdivではなく段落が含まれることになります。 これを確認してみましょう:

let elem = document.querySelector('#elem'); elem.addEventListener('click', function(event) { console.log(event.target); // 段落を出力します console.log(this); // divを出力します });

タグ li を持つリスト ul があるとします:

ul { padding: 30px; border: 1px solid red; } li { list-style-type: none; margin-bottom: 20px; border: 1px dashed black; } <ul id="elem"> <li>text</li> <li>text</li> <li>text</li> <li>text</li> <li>text</li> </ul>

:

タグ ul にクリックハンドラーをバインドします。 このハンドラー内で、プロパティ tagName を使用して、どのタグがクリックされたかを確認してください。 クリックが li タグ上で行われた場合、そのタグのテキストの末尾に感嘆符を追加してください。 クリックが ul タグ上で行われた場合は、その情報をコンソールに出力してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否