6 回答

TA貢獻1951條經驗 獲得超3個贊
images.addEventListener
應該是images[i].addEventListener
。您希望將偵聽器添加到數組中的特定圖像,而不是數組本身。類似的問題images.remove()
。

TA貢獻1824條經驗 獲得超8個贊
首先,您的容器和兩個圖像都有相同的 id - ID 應該是唯一的。其次,正如人們已經提到的,您不能將 eventListener 附加到對象數組。像這樣的事情應該做:
let images = document.querySelectorAll("[id^='img']");
for (let i = 0; i < images.length; i++){
images.forEach(i=>{i.addEventListener("click", () => {
i.remove();
});
});
}
<div id = 'box'>
<img src="https://www.sciencemag.org/sites/default/files/styles/article_main_large/public/dogs_16x9_0.jpg?itok=byPuhQjh" id="img1"/>
<img src="https://www.yvr.ca/-/media/yvr/blog/2018/57_yvr_puppies_2018.jpg" id="img2"/>
</div>

TA貢獻1810條經驗 獲得超5個贊
這將對您有所幫助 - https://jsfiddle.net/n5mk9Lzj/
let images = document.querySelectorAll("img");
for (let i = 0; i < images.length; i++) {
images[i].addEventListener("click", function() {
images[i].remove();
});
}

TA貢獻1812條經驗 獲得超5個贊
您不能將事件處理程序附加到圖像列表
所以循環(huán)圖像并為它們中的每一個
// for each image in images
image.onclick = function (e) {
e.target.parentNode.removeChild(e.target);

TA貢獻1859條經驗 獲得超6個贊
您需要更新代碼,您沒有在循環(huán)內使用索引。您不能將任何偵聽器直接添加到圖像數組。
<!DOCTYPE html>
<html>
<body>
<div id = 'img'>
<img src="https://www.sciencemag.org/sites/default/files/styles/article_main_large/public/dogs_16x9_0.jpg?itok=byPuhQjh" id="img"/>
<img src="https://www.yvr.ca/-/media/yvr/blog/2018/57_yvr_puppies_2018.jpg" id="img"/>
</div>
<script text="javascript">
let images = document.querySelectorAll("img");
for (let i = 0; i < images.length; i++){
images[i].addEventListener("click", () => {
images[i].remove();
});
}
</script>
</body>
</html>
添加回答
舉報