我试图找出这段代码出了什么问题:

function toggle_visibility() {
    var dropDownNav = document.getElementsByClassName("dropDownNav");
    if (dropDownNav.style.display == 'block') e.style.display = 'none';
    else dropDownNav.style.display = 'block';
}


HTML如下所示:

 <a class="dropDownNavButton" href="#" onclick=
"toggle_visibility(dropDownNav)"><img alt="menu icon" src=
"img/navIcon.png"></a>

<ul class="dropDownNav">
    <li class="liWorks">
        <a href="works.html">Works</a>
    </li>

    <li class="liAbout">
        <a href="#">About</a>
    </li>

    <li class="liContact">
        <a href="contact.html">Contact</a>
    </li>

    <li class="liBlog">
        <a href="#">Blog</a>
    </li>
</ul>


但是Chrome告诉我:
未捕获的ReferenceError:未定义dropDownNav
点击

有人可以给我指路吗?



非常感谢您的所有快速解答!第一次使用stackoverflow,绝对不是最后一次。终于奏效了,我为数组添加了索引[0],并在onClick函数上删除了dropDownNav。唯一的问题是,当我第二次单击时,我希望dropDownNav显示返回无显示。有什么线索吗?

最佳答案

document.getElementsByClassName()返回与类名称匹配的所有元素的HTMLCollection(类似于数组)。样式属性不是为HTMLCollection定义的,而是为元素定义的。使用以下命令从数组中获取第一个元素

var dropDownNav = document.getElementsByClassName("dropDownNav")[0];

10-06 00:30