2017-03-01 278 views
0

我從w3schools獲得了以下代碼。如何動態地使用JavaScript在mySidenav中添加更多菜單項?Javascript將菜單添加到導航欄

CCS部分:

.sidenav { 
    height: 100%; 
    width: 0; 
    position: fixed; 
    z-index: 1; 
    top: 0; 
    left: 0; 
    background-color: #111; 
    overflow-x: hidden; 
    transition: 0.5s; 
    padding-top: 60px; 
} 
.sidenav a { 
    padding: 8px 8px 8px 32px; 
    text-decoration: none; 
    font-size: 25px; 
    color: #818181; 
    display: block; 
    transition: 0.3s 
} 
.sidenav a:hover, .offcanvas a:focus{ 
    color: #f1f1f1; 
} 
.sidenav .closebtn { 
    position: absolute; 
    top: 0; 
    right: 25px; 
    font-size: 36px; 
    margin-left: 50px; 
} 

HTML體:

<div id="mySidenav" class="sidenav"> 
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a> 
    <a href="#">About</a> 
    <a href="#">Services</a> 
    <a href="#">Clients</a> 
    <a href="#">Contact</a> 
</div> 

如何添加對象XXX到mySidenav?

回答

0

那麼,你需要使用正常的JavaScript爲此,沒有別的!

這是怎麼一回事呢?

  1. 首先,定義使用document對象的getElementById()方法指向你的側邊欄的變量。現在

    var menu = document.getElementById("mySidenav"); 
    
  2. ,您可以創建使用document對象的createElement()方法的新元素。

    var newlink= document.createElement("a"); // In this case it's anchor element. 
    
  3. 現在你可以指定你的對象的各種屬性,我不會告訴你怎麼做,在這裏,你將不得不尋找在documentation

  4. 最後你設置你想要的屬性之後, ,您可以簡單地將該對象追加到菜單。

    menu.appendChild(newlink); 
    

我希望這有助於你! :D

Alice。

0
var menu= document.getElementById("mySidenav"); 
    newItem = //create the new item here 
menu.insertBefore(newItem, menu.childNodes[0]); 
+1

您應該添加,這不是香草的解決方案,但它需要jQuery庫。 –

+0

沒有提到有關jQuery的內容。 –

0

我測試這一點,似乎工作:

var nav=document.getElementById("mySidenav"); 
var node = document.createElement("a"); 
var textnode = document.createTextNode("newlink"); 
node.appendChild(textnode); 
node.setAttribute('href', 'http://www.google.com'); 
nav.appendChild(node);