未定义Javascript、Dom、父节点

未定义Javascript、Dom、父节点,javascript,dom,undefined,parent-child,Javascript,Dom,Undefined,Parent Child,我想创建一个父元素。我有这些元素,它们包含标签和文本。在我的评论中,我写下了我所犯的错误类型: var type=document.getElementsByClassName("Aut"); console.log(type); //All elements are shown var parNode=type.parentNode; for(var el=parNode.firstChild; el; el=el.nextSiblin

我想创建一个父元素。我有这些元素,它们包含标签和文本。在我的评论中,我写下了我所犯的错误类型:

    var type=document.getElementsByClassName("Aut");
        console.log(type); //All elements are shown 
        var parNode=type.parentNode;
        for(var el=parNode.firstChild; el; el=el.nextSibling) {...} 
//var el=parNode.firstChild,parNode is not defined

如果有人告诉我为什么会这样,那就太好了。

getElementsByClassName
不返回单个节点,它返回一个节点列表,您需要执行以下操作:

var type = document.getElementsByClassName("Aut");
if(type.length > 0) {
    type = type[0];
    console.log(type); //All elements are shown 
    var parNode = type.parentNode;
    var sibling = parNode;
    while( (sibling = sibling.nextSibling) != null ) { .. }
}
此外,我还修改了for循环,您可以通过以下方式枚举父级的兄弟姐妹:

var sibling = parNode;
while( (sibling = sibling.nextSibling) != null ) { .. }

这表示,“只要我一直在寻找同级(从parNode开始)就继续”

getElementsByClassName
返回元素的集合,而不是元素本身。