Uncaught TypeError: Cannot set property 'display' of undefined解决方法 vue

365 阅读1分钟

点击页面的空白处关闭二级导航

使用了element的导航组件NavMenu 导航菜单  要求点击空白处关闭二级菜单

如果不循环获取的getElementsByClassName("el-menu--horizontal");会报错;

因为获取的是集成的元素,集成的没有display属性,需要进行循环一下,

var i = 1; 是因为 导航中设置判断是否有二级,最大的ul不能包含它,

改完之后的代码如下,可以实现点击页面空白处关闭二级导航,暂时没有出现其他问题

  mounted () {    document.addEventListener("click", function(e) {      if (e.target.className != "spanItem" || e.target.className == '') {           var divset = document.getElementsByClassName("el-menu--horizontal");           for (var i = 1; i < divset.length;i++) {                 divset[i].style.display="none";             }; // 点击页面空白处,关闭二级导航      }    });  },