2014-01-22 2 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

Я рекомендую прочитать документацию MDN перед использованием любых методов DOM, с которыми вы не знакомы. Вот для '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]); 

    } 

из вашего кода, кажется, что вы делаете обратный, что добавление главного меню в подменю, которое снова.

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

Услуги

Так что мне нужно добавить подменю выше элемента, так что он должен выглядеть

Услуги

-> Non оплачиваемое Service

-> ИТ-услуг

-> Платежный сервис

+0

Спасибо Shoaib, что я искал« цикл цикла », так как этот метод возвращает список узлов. – Wandile

+0

Вы можете принять ответ, если он вам помог. благодаря –

Смежные вопросы