Javascript,Dom, 未定义父节点
Javascript,Dom, parent node not defined
我想做一个父元素。我有这个元素,其中包含标签和文本。作为评论,我写了我变成的错误类型:
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
不是 return 单个节点,它 return 是一个节点列表,您需要做:
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循环,你可以用这种方式枚举parent的兄弟姐妹:
var sibling = parNode;
while( (sibling = sibling.nextSibling) != null ) { .. }
这表示,"so long as I keep finding a sibling (starting from parNode) keep going"
我想做一个父元素。我有这个元素,其中包含标签和文本。作为评论,我写了我变成的错误类型:
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
不是 return 单个节点,它 return 是一个节点列表,您需要做:
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循环,你可以用这种方式枚举parent的兄弟姐妹:
var sibling = parNode;
while( (sibling = sibling.nextSibling) != null ) { .. }
这表示,"so long as I keep finding a sibling (starting from parNode) keep going"