2017-05-01 161 views
0

HTML改變顏色的javascript

<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'); 
    } 
} 

但我不能改變顏色,我做錯了什麼?我管理 改變身體的顏色,但我不能導航。

+0

可以共享HTML的'nav'條 – brk

+0

提供的導航元素的ID,改變getElement呼叫使用該ID。 Nav是元素類型 - 不是它的ID。 – Archer

+1

@Leyer'alert('Mobile');'?它工作正常嗎? –

回答

1

您使用了錯誤的javascript函數。 nav是一個標籤,而不是一個id。

應當getElementsByTagName("nav")[0]代替getElementById("nav")

的JavaScript將始終返回無論使用getElementsByTagName()方法匹配元件的數目的陣列。因此請使用[0]返回第一個。

+0

它是頁面上的第一個導航元素嗎? – Archer

+0

你確定嗎?他還沒有添加任何應用程序HTML – Ninjaneer

+0

@Mendax現在他發佈了他的html代碼。仍然我堅持這個答案將工作 –

0

您使用了document.getElementById,但您只有HTML5的導航標記。將id =「nav」添加到您的導航標記。

此致敬禮!

0

你這裏的問題是,你正在使用getElementById,但沒有給你的資產淨值的ID。

解決這將是一個ID添加到您的導航,如下的最佳方式:

<nav id="top-nav"> 

而且你的JS就變成了:

document.getElementById('top-nav').style.backgroundColor = "blue"; 

通過超級酷帥給出的答案凝膠男孩,雖然它會工作是不切實際的,因爲它尋找任何<nav>標籤,所以如果你添加更多<nav>標籤,或移動它們,你將不得不重新編碼你的JavaScript。

通過使用ID時,JavaScript將始終瞄準正確<nav>