使用 javascript 更改导航栏的颜色
Change color of navbar using javascript
HTML
<nav>
<ul>
<li><a class="notDrop" href="#home">HOME</a></li>
<li><a class="notDrop" href="guides.html">GUIDES</a></li>
<li class="dropdown">
<a class="dropbtn">BRANDS</a>
<div class="dropdown-content">
<a href="gaming.html">NVIDIA</a>
<a href="#">INTEL</a>
<a href="#">CORSAIR</a>
<a href="#">SAMSUNG</a>
<li class="dropdown">
<a class="dropbtn">BUILDS</a>
<div class="dropdown-content">
<a href="gaming.html">GAMING</a>
<a href="#">OFFICE</a>
<a href="#">SERVER</a>
<a href="#">MEDIACENTER</a>
</div>
</li>
</ul>
</nav>
CSS
nav {
background-color: white;
overflow: hidden;
display: flex;
justify-content: center;
}
Javascript
window.onload = function mobile(){
if( isMobile.any() ) {
document.getElementById('nav').style.backgroundColor = "blue";
alert('Mobile');
}
}
But I can't get it to change color, what am I doing wrong? I managed
to change the color of the body but I cant of the nav.
您使用了错误的 javascript 函数。 nav
是标签,不是 id。
应该是getElementsByTagName("nav")[0]
而不是getElementById("nav")
javascript 将始终 return 一个数组,而不管使用 getElementsByTagName()
方法的匹配元素的数量。所以用[0]
到return第一个
您使用了 document.getElementById,但您只有来自 HTML5 的导航标签。添加 id = "nav" 到你的导航标签。
此致!
你的问题是你正在使用 getElementById
,但没有给你的导航 ID。
解决这个问题的最佳方法是在您的导航中添加一个 id,如下所示:
<nav id="top-nav">
你的 js 变成:
document.getElementById('top-nav').style.backgroundColor = "blue";
Super Cool Handsome Gel Boy 给出的答案虽然有效但不切实际,因为它会查找任何 <nav>
标签,因此如果您添加更多 <nav>
标签,或移动它们,你将不得不重新编码你的 javascript。
通过使用 id,javascript 将始终定位到正确的 <nav>
。
HTML
<nav>
<ul>
<li><a class="notDrop" href="#home">HOME</a></li>
<li><a class="notDrop" href="guides.html">GUIDES</a></li>
<li class="dropdown">
<a class="dropbtn">BRANDS</a>
<div class="dropdown-content">
<a href="gaming.html">NVIDIA</a>
<a href="#">INTEL</a>
<a href="#">CORSAIR</a>
<a href="#">SAMSUNG</a>
<li class="dropdown">
<a class="dropbtn">BUILDS</a>
<div class="dropdown-content">
<a href="gaming.html">GAMING</a>
<a href="#">OFFICE</a>
<a href="#">SERVER</a>
<a href="#">MEDIACENTER</a>
</div>
</li>
</ul>
</nav>
CSS
nav {
background-color: white;
overflow: hidden;
display: flex;
justify-content: center;
}
Javascript
window.onload = function mobile(){
if( isMobile.any() ) {
document.getElementById('nav').style.backgroundColor = "blue";
alert('Mobile');
}
}
But I can't get it to change color, what am I doing wrong? I managed to change the color of the body but I cant of the nav.
您使用了错误的 javascript 函数。 nav
是标签,不是 id。
应该是getElementsByTagName("nav")[0]
而不是getElementById("nav")
javascript 将始终 return 一个数组,而不管使用 getElementsByTagName()
方法的匹配元素的数量。所以用[0]
到return第一个
您使用了 document.getElementById,但您只有来自 HTML5 的导航标签。添加 id = "nav" 到你的导航标签。
此致!
你的问题是你正在使用 getElementById
,但没有给你的导航 ID。
解决这个问题的最佳方法是在您的导航中添加一个 id,如下所示:
<nav id="top-nav">
你的 js 变成:
document.getElementById('top-nav').style.backgroundColor = "blue";
Super Cool Handsome Gel Boy 给出的答案虽然有效但不切实际,因为它会查找任何 <nav>
标签,因此如果您添加更多 <nav>
标签,或移动它们,你将不得不重新编码你的 javascript。
通过使用 id,javascript 将始终定位到正确的 <nav>
。