2016-03-04 7 views
-1

У меня есть этот кусокAppendChild не ошибка функции (JAVASCRIPT)

var inviteSection = document.getElementByClassName("invitedFriends"); 
var friend = document.createElement("div").class = "friend"; 

var mail = document.createElement("p").class = "mail"; 
var span = document.createElement("span").class = "status accepted"; 

function main() { 
    inviteSection.appendChild(friend); 

    friend.appendChild(mail); 
    friend.appendChild(span); 
} 

main(); 

Когда я запускаю эту хромированную консоль это говорит «Uncaught TypeError: inviteSection.appendChild не является функция» там ли какое-либо исправление это, пожалуйста, помогите мне, ребята!

+0

'inviteSection' - это элемент NodeList, не содержащий элемент dom –

+5

' getElementsByClassName'. Множественное число. –

+0

Можете ли вы создать скрипку, пожалуйста? –

ответ

2

Проблема заключается в том, что, как указывает Akshay Arora, метод получения элементов по имени класса должен быть множественным. Подразумевается, что он всегда будет возвращать массив, даже если он найдет только один элемент с этим именем класса. (Это то, что подразумевается под Arun P Johny NodeList.)

Если вы абсолютно уверены в том, что там будет только когда будет один элемент с таким именем класса, то вам просто нужно изменить первую строку

var inviteSection = document.getElementsByClassName("invitedFriends")[0]; 

Если с этим именем класса присутствует более одного элемента, это просто даст вам первый элемент.

+1

Не массив, а [* HTMLCollection *] (https://dom.spec.whatwg.org/#dom-document-getelementsbyclassname), особый тип NodeList. – RobG

+0

Это правда. Я упрощен. Но если это ошеломляет, как утка ... –

+0

Ну, вы не можете называть какие-либо из методов Array на нем ... ;-) – RobG

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