未定义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
返回元素的集合,而不是元素本身。