ルート要素から各カードの ID を取得しようとしています。ただし、ネストされた要素をクリックするたびに、空の文字列が表示されます。ただし、ルート要素カードをリッスンしているときに、ラッピング カードの ID が必要です。これはより大きな構造の一部であるため、バブリングとキャプチャの両方のケースを処理したいと考えています。バニラjsとJavascriptでのみ回答が必要です.cssは必要ありません。
cards.addEventListener('click', evt => {
if (evt.target !== evt.currentTarget) {
var clickedItem = evt.target.id
console.log(clickedItem);
}
});
.card {
/* Add shadows to create the "card" effect */
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
transition: 0.3s;
}
/* On mouse-over, add a deeper shadow */
.card:hover {
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
}
/* Add some padding inside the card container */
.container {
padding: 2px 16px;
}
<div id="cards" style="margin: auto; width: 50%;">
<div class="card" id="1234567"><img src="img_avatar.png">
<div class="container">
<h4>1st Note</h4>
<p>Note Body</p>
</div>
</div>
<div class="card" id="1234547"><img src="img_avatar.png">
<div class="container">
<h4>2nd Note</h4>
<p>Note Body2</p>
</div>
</div>
<div class="card" id="721680"><img src="img_avatar.png">
<div class="container">
<h4>3Note Body</h4>
<p>Note Body3</p>
</div>
</div>
</div>