This question already has answers here:
What do querySelectorAll and getElementsBy* methods return?

(11个答案)


5年前关闭。




您好,我正在尝试使用关闭点击关闭div。
这是代码
var closeIcon=document.getElementsByClassName('.monique-close-icon');

    function closeBigImgAndContainer()
{
    MoniqueDiv.style.display= "none";
    currentBigImageToDisplay.style.display="none";
};

closeIcon.addEventListener("click", closeBigImgAndContainer);

但是在控制台中有一个错误
未捕获的TypeError:closeIcon.addEventListener不是一个函数(匿名函数)@ main.js:14
请告诉我我在哪里做错了...谢谢。

最佳答案

getElementsByClassName返回一个元素数组,addEventListener存在于元素上。

解决方法是从getElementsByClassName遍历结果集,并在每个项目上调用addEventListener:

var closeIcons=document.getElementsByClassName('.monique-close-icon');

function closeBigImgAndContainer()
{
    MoniqueDiv.style.display= "none";
    currentBigImageToDisplay.style.display="none";
};

for (i = 0; i < closeIcons.length; i++) {
    closeIcons[i].addEventListener("click", closeBigImgAndContainer);
}

关于javascript - addEventListener不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32151704/

10-08 22:45
查看更多