2013-06-23 48 views
0

請幫助使用此功能的滑動菜單。對於slideMenus數組中的每個對象,我想引用該對象中的第一個無序列表元素,並將ul元素左側樣式屬性的值設置爲0px。請幫忙!謝謝!javascript滑動菜單 - 如何引用嵌套的html元素?

function makeMenus(){ 
var slideMenus=new Array(); 
var allElems=document.getElementsByTagName("*"); 
for(var i=0;i<allElems.length;i++){ 
     if(allElems[i].className=="slideMenus")menus.push(allElems[i]); 
} 
for(var i=0;i<slideMenus.length;i++){ 
    slideMenus[i].onclick=showSlide; 
    slideMenus[i].ul.style.left="0px"; 
    /*for each object in slideMenus Array, 
    ref 1st ul element within that object 
    and set the value of the ul elements 
    left style property to 0px */ 
} 
document.getElementById("head").onclick=closeSlide; 
document.getElementById("main").onclick=closeSlide; 

}

+1

你會考慮使用JQuery或另一個庫來簡化和增強節點選擇? – MasterAM

+0

謝謝你的建議,我剛開始學習Javascript,但很多人告訴我,我應該開始jquery – Vynce82

+0

@ Vynce82恕我直言,你應該繼續學習JavaScript之後,你可以學習jQuery,這樣你就可以應用JavaScript或jQuery的根據情況。 –

回答

1

可以使用的getElementsByTagName獲得UL

function makeMenus(){ 

//No need to get all the nodes in the page, you can just get elements by class name. 
var slideMenus = document.getElementsByClassName("slideMenus"); 

for(var i=0;i<slideMenus.length;i++){ 
    slideMenus[i].onclick = showSlide; 
    slideMenus[i].getElementsByTagName("ul")[0].style.left = "0px"; 
} 
document.getElementById("head").onclick=closeSlide; 
document.getElementById("main").onclick=closeSlide; 
} 
+0

太棒了!謝謝巴拉吉! – Vynce82

+0

@ Vynce82作爲一項改進,您可以添加事件監聽器,而不是直接onclick。將來,如果您希望在單擊元素時再執行一項操作,則可以輕鬆添加另一個偵聽器。 https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener –