2015-03-31 47 views
0

使用JS if语句来改变div类的按钮(我做错了什么)?

function navtoggle(elementRef) { 
 
    if (document.getElementById('nav').className = 'closed') { 
 
    document.getElementById('nav').className = 'open' 
 
    } else if (document.getElementById('nav').className = 'open') { 
 
    document.getElementById('nav').className = 'closed' 
 
    }; 
 

 
}
.closed { 
 
    display: none; 
 
} 
 
.open { 
 
    display: block; 
 
} 
 
#navget { 
 
    width: 100px; 
 
    height: 100px; 
 
    box-shadow: 0px 0px 15px black; 
 
}
<html> 
 

 
<head> 
 
    <link rel="stylesheet" type="text/css" href="style.css"> 
 
    <title>HTML Library</title> 
 
</head> 
 

 
<body> 
 
    <div id="nav" class="closed"> 
 
    <ul> 
 
     <li><a href="index.html"><h1>HOME</h1></a> 
 
     </li> 
 
    </ul> 
 
    </div> 
 
    <button onclick="JavaScript: navtoggle(this);" id="navget">NAV</button> 
 
</body> 
 

 
</html>

下面是HTML:

<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="style.css"> 
     <title>HTML Library</title> 
    </head> 
    <body> 
     <div id="nav" class="closed"> 
      <ul> 
       <li><a href="index.html"><h1>HOME</h1></a></li> 
      </ul> 
     </div> 
<button onclick="JavaScript: navtoggle(this);" id="navget">NAV</button> 
    </body> 
</html> 

的JS:

function navtoggle(elementRef){ 
if (document.getElementById('nav').className = 'closed') 
    {document.getElementById('nav').className = 'open'} 

else if (document.getElementById('nav').className = 'open') 
    {document.getElementById('nav').className = 'closed'}; 

} 

而CSS:

.closed { 
    display: none; 
} 

.open { 
    display: block; 
} 

#navget { 
    width: 100px; height: 100px; 
} 

我知道使用复选框会更容易,而且我知道如何做到这一点。但是,我希望它只是一个按钮,以便我可以使它看起来更好等。 我对JS很新颖,所以请不要对愚蠢的问题过于苛刻。谢谢。

+1

错误的比较操作。如果条件存在,则使用=而不是==。你也不需要Javascript,只需onclick =“navtogglet(this)”是必需的 – FarazShuja 2015-03-31 12:09:51

+0

对不起,重复的代码,当我插入代码片段时,它就这样做了。 – 2015-03-31 12:11:13

+0

也避免标签内的h1标签,其无效。 – FarazShuja 2015-03-31 12:13:42

回答

0
在条件语句

你有使用“=”,而不是比较“==”

if (document.getElementById('nav').className == 'closed') { 
    document.getElementById('nav').className = 'open' 
    } else if (document.getElementById('nav').className == 'open') { 
    document.getElementById('nav').className = 'closed' 
0

你有你的sintax几个问题我做了你plunker here所以你可以看到所有的细节,但基本上:

function navtoggle(elementRef){ 
    if (document.getElementById('nav').className === 'closed') { 
    document.getElementById('nav').className = 'open' 
    } 
    else if (document.getElementById('nav').className === 'open'){ 
    document.getElementById('nav').className = 'closed' 
    } //You was using semicolon here and that wasn't parsing well 
} 

我不知道,如果错过添加脚本的头部,但也让我知道它的工作

相关问题