javascript - getElementsByTagName 不是函数。它调用不在列表中

标签 javascript html

<div id="menuItems">
            <a href="#"><img src="package.svg" alt="Склад"><span> Склад<span></a>         
            <a href="#"><img src="report.svg" alt="Склад"><span> Отчеты</span></a>
            <a href="#"><img src="worker.svg" alt="Склад"><span> Персонал</span></a>
</div>


var menuText = document.getElementById("menuItems").getElementsByTagName("a");
    for(var i in menuText){
        var element = menuText[i];
        var text = element.getElementsByTagName("span")[0];
       text.style.display = isMenuShort ? "none" : "inline";
    }   

元素不是列表。我做错了什么? enter image description here

还有我的帖子

最佳答案

Use for-loop instead of for-in loop to iterate array or array-like collection.

for-in 循环迭代可枚举属性 -

  • 0
  • 1
  • 2
  • 长度
  • 项目
  • 命名项目

因此,循环被迭代 6 次,menuTextgetElementsByTagName(0, 1, 2 除外)为未定义

另请参阅"Why is using “for…in” with array iteration a bad idea?"

var menuText = document.getElementById("menuItems").getElementsByTagName("a");
for (var i = 0; i < menuText.length; i++) {
  var element = menuText[i];
  var text = element.getElementsByTagName("span")[0];
  console.log(text);
}
<div id="menuItems">
  <a href="#"><img src="package.svg" alt="Склад"><span> Склад</span></a>
  <a href="#"><img src="report.svg" alt="Склад"><span> Отчеты</span></a>
  <a href="#"><img src="worker.svg" alt="Склад"><span> Персонал</span></a>
</div>

关于javascript - getElementsByTagName 不是函数。它调用不在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43756025/

相关文章:

html - 空 div 之间的间隙

javascript - 文本区域选项不可选择

html - 图像旁边的文字在调整大小时移动

javascript - 为什么这个 Javascript 图像对象没有添加到图像数组中?

使用 Mootools 拖动时 HTML 不会更新

javascript - 单击按钮时从服务器 NodeJS 请求数据

javascript - 编译后的文件没有获得指纹轨

javascript - ng-include 用于页眉/页脚

javascript - Chrome 开发者工具之外的 CSS 断点死区

javascript - 如何有效地完成这种效果?