JS数组:无法执行' appendChild' on'节点':参数1不是类型'节点'

时间:2017-09-13 16:39:37

标签: javascript arrays dom

单击按钮时,我有大量动态创建的html元素。在JS中他们看起来像这样:

var elementTVA = document.createElement('p');

为了快速操作这些元素,我决定将它们存储在数组中并使用for循环。

for (var i=0 ; i<=tableau.length ; i++) {
        tableau[i].classList.add('list-element');
        newRow.appendChild(tableau[i]);
    };

但是当我尝试追加它时,我收到此错误

未捕获的TypeError:无法执行&#39; appendChild&#39; on&#39; Node&#39;:参数1不属于&#39; Node&#39;。

是因为我将它们存储在数组中吗?

1 个答案:

答案 0 :(得分:1)

for循环中,您应该使用

for (var i=0; i < tableau.length; i++) {

您应该检查i 是否小于长度,而不是小于或等于

数组的长度将比最大索引高一个,因为数组从0开始,因此当您访问tableau[ tableau.length ]时,您会获得undefined