【问题标题】:Insert array of elements into the DOM? [duplicate]将元素数组插入DOM? [复制]
【发布时间】:2017-08-30 12:17:37
【问题描述】:

我有一个元素数组:

const itemCurrent = document.createElement('div');
const itemNext = document.createElement('div');

我已经创建了一个数组:

const itemsAll = [itemCurrent, itemNext];

如何将它们全部插入到我的页面正文中?

【问题讨论】:

标签: javascript


【解决方案1】:

要将元素添加到正文中,您需要将它们附加到文档的正文中。这是通过使用 appendChild(element) 函数完成的:

// looping through your array : 
for (let i=0;i<itemsAll.length;i++) {
     // appending your elements to the body :
     document.body.appendChild(itemsAll[i]);
}

【讨论】:

  • @Rajesh 我编辑了我的答案并添加了解释。
【解决方案2】:

您可以简单地使用.append() 一次性追加多个 DOM 节点,如下所示;

var divs = Array.from({length:10}) // lets make an array of 10 divs
                .map(function(_,i){
                       var el = document.createElement('div');
                       el.textContent = `I am div # ${i}`;
                       return el;
                     });
document.body.append(...divs);

【讨论】:

【解决方案3】:

回忆别人说过的话:

  • 在 JS 中,您使用 array.forEach 迭代一个数组,该数组接受一个参数 - 一个函数将按顺序在数组的所有元素上调用
  • 将元素附加(在末尾添加)到您调用的 DOM(页面主体)document.body.appendChild,它将要添加的元素作为参数

然后你需要的代码变成

itemsAll.forEach(function (element, index, array) {
    document.body.appendChild(element);
})

或(使用 ES6 语法)

itemsAll.forEach(el => document.body.appendChild(el)) 

【讨论】:

    【解决方案4】:

    遍历数组并使用appendChild追加每个数组:

    itemsAll.forEach(el => {
      document.body.appendChild(el)
    })
    

    【讨论】:

    • 这也可以内联:itemsAll.forEach(el => document.body.appendChild(el));
    • 正确答案应该是Redu建议的
    猜你喜欢
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多