我有许多.nextBtn
个元素,并且我已经为每个元素添加了点击侦听器。我尝试实现一种功能,如果点击img
,则会调用takeToNextPage()
。由于某种原因,它无法正常工作。
let nextBtn = document.querySelectorAll('.nextBtn');
for (let i = 0; i < nextBtn.length; i++) {
nextBtn[i].addEventListener('click', function(e) {
if (e.target.parentElement.classList.contains('.nextBtn')) {
takeToNextPage();
}
});
}
&#13;
<div class="page1 page">
page 1
<div class="nextBtnContainer">
<div class="nextBtnText">some text</div>
<div class="nextBtn" id="1">
<img src="assets/game-15.png" alt="Next">
</div>
</div>
</div>
<div class="page2 page">
page 2
<div class="nextBtnContainer">
<div class="nextBtnText">Play Mind Reader</div>
<div class="nextBtn" id="2">
<img src="assets/game-15.png" alt="Next">
</div>
</div>
</div>
&#13;
注意:请不要建议将事件监听器添加到img
。我不想这样做。此外,.textBtn
元素的实际数量超过了显示的数量。所以解决方案应该是可扩展的。
答案 0 :(得分:0)
课不应该有。在开始
let nextBtn = document.querySelectorAll('.nextBtn');
for(let i = 0; i<nextBtn.length; i++){
nextBtn[i].addEventListener('click', function(e){
if(e.target.parentElement.classList.contains('nextBtn')){
takeToNextPage();
}
});
}