2014-01-22 26 views
0
var menuheader = document.createElement("li"); 
document.getElementsByClassName("subMenu").appendChild(menuheader); 

以上是代码段。我得到这个错误:如何使用纯javascript将具有指定类名的所有节点附加到子节点

firebug: TypeError: document.getElementsByClassName(...).appendChild is not a function 
+1

因为'getElementsByClassName()'返回nodeList!尝试使用'document.getElementsByClassName(...)[0] .appendChild'来定位列表中的第一个元素! –

+0

我建议在使用任何不熟悉的DOM方法之前阅读MDN文档。这是'getElementsByClassName'的一个:https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName –

回答

0

应该

var menuheader = document.createElement("li");// creates main menu to which below submenu should be added. 
var submenus=document.getElementsByClassName("subMenu"); //gives an array so you cannot append child to that. 

    for(int i=0;i<submenus.length;i++){ 
    menuheader.appendChild(submenus[i]); 

    } 

从你的代码看起来你正在做相反的,它是将MainMenu的再次哪个子菜单。

document.createElement("li"); //create a main menu say Services 

服务

所以我需要子菜单添加到上面的元素,使其看起来应该像

服务

- >非收费服务

- > IT服务

- >可结算服务

+0

谢谢Shoaib多数民众权纳这是我在寻找一个“for循环”,因为这种方法返回一个节点列表。 – Wandile

+0

如果它对你有帮助,你可以接受答案。谢谢 –

相关问题