我想制作一个父元素。我有这些元素,包含标签和文本。作为评论,我写了我变成的错误类型:
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
如果有人解释我为什么会这样,那将是非常友好的。
答案 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开始)继续前进"