类型错误附加子Javascript
我试图在NAV元素的end标记之前插入一些链接,因此在该元素中的其余链接之后。但是,我一直遇到错误消息“UncaughtTypeError:无法读取undefined的属性'appendChild',并且我无法确定TypeError在哪里/是什么。我错过了什么PS我理解“let”(或“const”)在某些情况下是var的替代品,但我不知道在这里是否可以使用它 注意:我在这里结束了:然后,但没有任何结果。在那里,我尝试了“stemon”的示例,但我无法找出应该在哪里添加我的appendChild,而仍然会得到相同的错误。i、 e:所有这些线索都不能让我理解我在这里到底错过了什么。。他们可能会给我一个答案,但显然不是我能理解的类型错误附加子Javascript,javascript,appendchild,Javascript,Appendchild,我试图在NAV元素的end标记之前插入一些链接,因此在该元素中的其余链接之后。但是,我一直遇到错误消息“UncaughtTypeError:无法读取undefined的属性'appendChild',并且我无法确定TypeError在哪里/是什么。我错过了什么PS我理解“let”(或“const”)在某些情况下是var的替代品,但我不知道在这里是否可以使用它 注意:我在这里结束了:然后,但没有任何结果。在那里,我尝试了“stemon”的示例,但我无法找出应该在哪里添加我的appendChild,
var节点=document.getElementsByTagName(“NAV”);
ele=document.createElement(“a”);
var升压=0;
用于(升压=0;升压<8;升压++){
ele.innerHTML='test';
node.parentNode.appendChild(ele,node.nextSibling);
控制台日志(逐步升级);
}
菜单
因为nav
没有父元素,所以它显示错误,并且您需要获取访问父元素的节点[0]
这是有效的解决方案-
var节点=document.getElementsByTagName(“nav”);
ele=document.createElement(“a”);
var升压=0;
用于(升压=0;升压<8;升压++){
ele.innerHTML='test';
节点[0].parentNode.appendChild(元素,节点.nextSibling);
控制台日志(逐步升级);
}
菜单
因为nav
没有父元素,所以它显示错误,并且您需要获取访问父元素的节点[0]
这是有效的解决方案-
var节点=document.getElementsByTagName(“nav”);
ele=document.createElement(“a”);
var升压=0;
用于(升压=0;升压<8;升压++){
ele.innerHTML='test';
节点[0].parentNode.appendChild(元素,节点.nextSibling);
控制台日志(逐步升级);
}
菜单
document.getElementsByTagName(“nav”)返回所有匹配元素的数组,然后必须选择第一个
因为行ele=document.createElement(“a”)代码>在循环之外
您根本不需要parentNode
let
关键字允许创建范围为包装块的变量。否则,变量的作用域是父函数,但它与您遇到的问题无关
闭包是您以后可能会学到的东西,它在对循环进行异步操作时很有用,但在您的案例中不需要使用。document.getElementsByTagName(“nav”)
返回所有匹配元素的数组,然后您必须选择第一个
因为行ele=document.createElement(“a”)代码>在循环之外
您根本不需要parentNode
let
关键字允许创建范围为包装块的变量。否则,变量的作用域是父函数,但它与您遇到的问题无关
闭包是您以后可能会学到的东西,它在对循环进行异步操作时非常有用,但在您的案例中不需要使用闭包。您应该使用HTMLCollection方法item()来获取节点()。此外,不应将元素添加到父节点,而应添加到节点本身
const node = document.getElementsByTagName("nav").item(0);
for (let stepup = 0; stepup < 8; stepup++) {
let el = document.createElement("a");
el.innerHTML = 'test';
el.href = "#";
node.appendChild(el);
node.insertBefore(document.createElement("br"), el);
}
const node=document.getElementsByTagName(“nav”).item(0);
对于(设步进=0;步进<8;步进++){
设el=document.createElement(“a”);
el.innerHTML='test';
el.href=“#”;
子节点(el);
node.insertBefore(document.createElement(“br”),el);
}
您应该使用HTMLCollection方法item()来获取节点()。此外,不应将元素添加到父节点,而应添加到节点本身
const node = document.getElementsByTagName("nav").item(0);
for (let stepup = 0; stepup < 8; stepup++) {
let el = document.createElement("a");
el.innerHTML = 'test';
el.href = "#";
node.appendChild(el);
node.insertBefore(document.createElement("br"), el);
}
const node=document.getElementsByTagName(“nav”).item(0);
对于(设步进=0;步进<8;步进++){
设el=document.createElement(“a”);
el.innerHTML='test';
el.href=“#”;
子节点(el);
node.insertBefore(document.createElement(“br”),el);
}
节点
是元素,而不是元素
。您需要获得一个元素才能使用parentNode
或appendChild
node
是元素,而不是元素。您需要获得一个元素才能使用parentNode
或appendChild
。感谢您的详细解释!这就成功了,我现在在实践中对此有了更多的了解。谢谢你的详细解释!这就成功了,我现在在实践中对此有了更多的了解。