2016-03-04 53 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(); 

当我运行这个铬控制台,它说“遗漏的类型错误:inviteSection.appendChild不是一个函数”是否有任何修补程序这请帮助我的家伙!

+0

'inviteSection'是一个NodeList而不是dom元素引用 –

+5

'getElementsByClassName'。复数。 –

+0

你可以创建一个小提琴吗? –

回答

2

问题是,正如Akshay Arora所指出的,按类名获取元素的方法必须是复数。这意味着它将始终返回一个数组,即使它只能找到具有该类名的一个元素。 (这是什么的NodeList意思Arun P Johny

如果你绝对相信,会有永远只能是与类名的一个元素,那么你只需要在第一线更改为

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

如果这个类名有多个元素,这只会给你第一个元素。

+1

不是数组,而是[* HTMLCollection *](https://dom.spec.whatwg.org/#dom-document-getelementsbyclassname),它是一种特殊类型的NodeList。 – RobG

+0

这是事实。我过于简单化了。但是,如果它像鸭子一样呱呱叫...... –

+0

那么,你不能调用它的任何数组方法... ;-) – RobG

相关问题