getElementsByTagName不是函数。它没有列出名单

时间:2017-05-03 09:23:30

标签: 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

我的帖子

1 个答案:

答案 0 :(得分:1)

  

使用String sql = "INSERT INTO data (username, UUID, tenant_id, site_id)" + "VALUES(?, ?, ?, ?)" + "ON DUPLICATE KEY UPDATE" + " UUID = VALUES(UUID), tenant_id = VALUES(tenant_id), site_id = VALUES(site_id)";代替for-in循环来迭代for-loop或类似数组的集合。

array循环迭代枚举属性 -

  • 0
  • 1
  • 2
  • 长度
  • 项目
  • namedItem

因此循环正在迭代for-in6getElementsByTagName以外的menuText 0, 1, 2

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

&#13;
&#13;
undefined
&#13;
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);
}
&#13;
&#13;
&#13;