Javascript Uncaught类型错误:无法设置unsifined属性'display'

时间:2016-09-03 09:40:39

标签: javascript html

Javascript无法在我的代码中设置display属性,因为它不认为它存在。

function toggle(el){
    alert(el);
    if (typeof el.display === "undefined"){
        el.style.display = 'block';
    }
    else if(el.style.display !== 'block'){
        el.style.display = 'none';
    }
    else{
        el.style.display = 'block';
    }
}
document.getElementsByClassName('menu-button')[0].addEventListener('click', function(event) {
    toggle(document.getElementsByName('nav'));
    document.getElementById('menu-button').classList.toggle('ion-navicon-round');
    document.getElementById('menu-button').classList.toggle('ion-ios-close-outline');
});

HTML

<link href="http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css"rel="stylesheet"/
<nav>
    <ul>
        <li>Home</li>
    </ul>
</nav>
<div id="menu-button" class="menu-button ion-navicon-round"></div>

2 个答案:

答案 0 :(得分:0)

根据您的需要,请继续学习

getElementsByTagName vs getElementsByName

切换方法期望元素但实际上获取元素数组。将电话打为

<h1 >HTTP : {{api.time}}</h1>

参考

http://www.w3schools.com/jsref/met_element_getelementsbytagname.asp

答案 1 :(得分:-1)

document.getElementsByName('nav')

返回一个数组,因为它们可能是多次出现的&#39; nav&#39;标签。因此,我们必须定义我们正在查看的标签。在这种情况下,我想处理第一次出现的&#39; nav&#39;标签。

document.getElementByName('nav')[0];