【发布时间】:2019-05-19 02:02:59
【问题描述】:
我有一个通过循环创建的用户列表(来自 API 的数据)。 当单击其任何子元素时,我试图返回父元素的 ID。
示例:如果用户单击任何 div(.user-info、.user-name 或 .user-city),我希望能够返回父 div.user 的 id
我尝试遍历用户列表的所有子元素,但我只得到一个空对象,因为这些项目是在页面加载后添加的。
我看过事件冒泡,但它总是冒泡到用户列表。我无法让它停在 .user
我尝试了类似的方法,但它只返回每个元素而不是父元素的 ID:
const userList = document.querySelector(".user-list");
userList.addEventListener("click", event => {
if (event.target.classList.contains('user')) {
console.log(event.target)
}
});
<div class="user-list">
<div class="user" id="1">
<div class="user-photo">
<img src="https://randomuser.me/api/portraits/men/91.jpg" alt="" />
</div>
<div class="user-info">
<div class="user-name">josef moore</div>
<div class="user-email email-wrap">josef.moore@example.com</div>
<div class="user-city">winchester</div>
</div>
</div>
<div class="user" id="2">
<div class="user-photo">
<img src="https://randomuser.me/api/portraits/men/98.jpg" alt="" />
</div>
<div class="user-info">
<div class="user-name">alexander richardson</div>
<div class="user-email email-wrap">alexander.richardson@example.com</div>
<div class="user-city">stoke-on-trent</div>
</div>
</div>
<div class="user" id="3">
<div class="user-photo">
<img src="https://randomuser.me/api/portraits/men/98.jpg" alt="" />
</div>
<div class="user-info">
<div class="user-name">alexander richardson</div>
<div class="user-email email-wrap">alexander.richardson@example.com</div>
<div class="user-city">stoke-on-trent</div>
</div>
</div>
</div>
【问题讨论】:
标签: javascript events