如何使用JavaScript(而不是jQuery)隐藏工具提示

如何使用JavaScript(而不是jQuery)隐藏工具提示,javascript,html,tooltip,Javascript,Html,Tooltip,我使用此网站创建了工具提示: 现在我想知道如何在使用普通javascript解决方案任意时间后关闭工具提示 到目前为止,我的解决方案是: window.setTimeout(closeTooltips(), 700); function closeTooltips(){ document.getElementsByClassName('tooltipText').style.display="none"; } 我理解为什么这不起作用,但我看不到解决办法。我可以遍历getElemen

我使用此网站创建了工具提示:

现在我想知道如何在使用普通javascript解决方案任意时间后关闭工具提示

到目前为止,我的解决方案是:

window.setTimeout(closeTooltips(), 700);

function closeTooltips(){
    document.getElementsByClassName('tooltipText').style.display="none";
}

我理解为什么这不起作用,但我看不到解决办法。我可以遍历getElementsByCassName返回的节点列表并隐藏每个节点,但我觉得这可能不是一个理想的解决方案

您很接近,但是使用,您并没有试图调用函数,您只是试图引用它,所以不要包含括号(JavaScript中的“调用运算符”):

接下来,需要迭代DOM查询找到的所有元素,并分别设置它们的样式,如下所示:

function closeTooltips(){
    var elems = document.querySelectorAll('.tooltipText');

    elems.forEach(function(el){
      el.style.display = "none";
    });
}

您很接近,但是使用,您并没有试图调用函数,您只是试图引用它,所以不要包含括号(JavaScript中的“调用运算符”):

接下来,需要迭代DOM查询找到的所有元素,并分别设置它们的样式,如下所示:

function closeTooltips(){
    var elems = document.querySelectorAll('.tooltipText');

    elems.forEach(function(el){
      el.style.display = "none";
    });
}

这是正确的,但是如果函数要工作,它仍然需要遍历元素。@Pointy是的,正如您所评论的,我正在处理这个问题。好的,但是请注意,并不是所有浏览器都为NodeList实例配备了
.forEach()
方法。Scott,我删除了我的答案。当你们发布你们的文章时,你们并没有包含任何关于迭代的内容(你们会注意到你们的编辑时间和我的发布时间几乎相同)。我删除了我的,因为节点列表上的forEach在功能上也不正确。请接受upvote。这是正确的,但是如果函数要工作,它仍然需要遍历元素。@是的,正如您所评论的,我正在处理这个问题。好的,但请注意,并非所有浏览器都为NodeList实例配备了
.forEach()
方法。Scott,我删除了我的答案。当你们发布你们的文章时,你们并没有包含任何关于迭代的内容(你们会注意到你们的编辑时间和我的发布时间几乎相同)。我删除了我的,因为节点列表上的forEach在功能上也不正确。请接受upvote。遍历元素肯定是必要的。遍历元素肯定是必要的。