gpt4 book ai didi

javascript - .appendchild 不是函数 - 在 "for in"循环中

转载 作者:行者123 更新时间:2023-11-29 19:21:34 24 4
gpt4 key购买 nike

控制台抛出错误:P[i].appendChild is not a function .如果我使用简单的“for 循环”for( var i=0 ; i<P.length ; ++i ),则不会出现该错误- 而不是“for-in 循环”

HTML:

<div id="container">
<div class="parent"></div>
<div class="parent"></div>
<div class="parent"></div>
</div>

Javascript:

var P = document.getElementsByClassName("parent");
for (var i in P){
var Child = document.createElement("div");
Child.class = "child";
P[i].appendChild(Child);
}

为什么我不能同时使用“for-in”和“.appendChild()”?

最佳答案

方法getElementsByClassName does not return an array ,所以 P 是一个对象,而不是数组。具体来说,它是一个 HTMLCollection具有节点以外的属性,因此这些属性没有方法。

您可以在下面的示例中看到这一点。

var P = document.getElementsByClassName("parent");
for (var i in P){
var output = document.createElement('div');

output.innerHTML = "Checking for appendChild on property '" + i + "' on the collection: " + typeof P[i].appendChild;
document.body.appendChild(output);
}
<div id="container">
<div class="parent"></div>
<div class="parent"></div>
<div class="parent"></div>
</div>

关于javascript - .appendchild 不是函数 - 在 "for in"循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32785622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com