Javascript,Dom,父节点未定义

时间:2015-11-19 02:21:35

标签: 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.nextSibling) {...} 
//var el=parNode.firstChild,parNode is not defined

如果有人解释我为什么会这样,那将是非常友好的。

1 个答案:

答案 0 :(得分:1)

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开始)继续前进"