【发布时间】:2021-05-26 09:41:27
【问题描述】:
谁能帮忙
我有一个项目列表,当我单击每个名称时,我想显示正在单击的项目的数据。
但我收到错误Uncaught TypeError: Cannot read property 'toggle' of undefined at HTMLLIElement.<anonymous>
如果我将forEach 应用于n.addEventListener('click'... 内的data,它可以正常工作,但它会显示所有列表的所有data,而不仅仅是我单击的那个。
这是代码:
const name = document.querySelectorAll('.name')
const data = document.querySelectorAll('.data')
name.forEach(n => {
n.addEventListener('click', () => {
data.classList.toggle('show')
})
})
.data {
display: none;
}
.show {
display: block;
}
<ul class="list">
<li class="name">
<h3>Jack</h3>
<div class="data">
<span>Age: 18</span>
</div>
</li>
<li class="name">
<h3>Mike</h3>
<div class="data">
<span>Age: 19</span>
</div>
</li>
<li class="name">
<h3>Greg</h3>
<div class="data">
<span>Age: 17</span>
</div>
</li>
</ul>
【问题讨论】:
标签: javascript html foreach addeventlistener