Ваша проблема в том, что getElementsByTagName()
(обратите внимание на множественное число, подразумеваемое 's' в названии функции) возвращает массив узлов DOM, а не один узел DOM, который над чем appendChild()
ожидает работать; поэтому вам необходимо определить, с каким массивом узлов вы хотите работать:
function add(content){
ul=document.getElementsByTagName("ul")[0]; // the [0] identifies the first element of the returned array
var li=document.createElement("li");
li.innerHTML=content;
ul.appendChild(li);
}
Помните, что если на странице есть только один ul
, вы можете использовать getElementsByTagName("ul")[0]
или (и это может быть предпочтительнее), добавив атрибут id
к этому ul
и затем выберите его с помощью getElementById()
, который, как и ожидалось, вернет только этот id
.
Ссылки: