You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Append操作中用嵌套循环基于二维数组生成多层DOM结构

实现方案

以下提供两种常用的实现方式,可根据你的实际场景选择:

方案1:原生DOM操作

可读性更高,适合数据量不大的场景:

// 替换为你实际要插入的容器元素
const container = document.getElementById('app');
const data = [
  [
    { title: '1' },
    { title: '2' }
  ],
  [
    { title: '3' },
    { title: '4' }
  ]
];

// 外层循环生成父div
data.forEach((subArr, index) => {
  const parentDiv = document.createElement('div');
  // 按索引设置类名,你也可以自定义类名规则
  parentDiv.className = index === 0 ? 'first-array' : 'second-array';

  // 内层循环生成子元素
  subArr.forEach(item => {
    const span = document.createElement('span');
    const p = document.createElement('p');
    p.textContent = item.title;
    span.appendChild(p);
    parentDiv.appendChild(span);
  });

  container.appendChild(parentDiv);
});

方案2:HTML字符串拼接

一次性插入DOM,性能更优,适合数据量较大的场景:

const container = document.getElementById('app');
const data = [
  [
    { title: '1' },
    { title: '2' }
  ],
  [
    { title: '3' },
    { title: '4' }
  ]
];

let html = '';
data.forEach((subArr, index) => {
  html += `<div class="${index === 0 ? 'first-array' : 'second-array'}">`;
  subArr.forEach(item => {
    html += `
      <span>
        <p>${item.title}</p>
      </span>
    `;
  });
  html += '</div>';
});

container.innerHTML = html;

如果外层数组长度不固定,你可以把类名规则修改为通用的动态命名,比如array-${index},不需要写死判断第一个第二个数组。

内容的提问来源于stack exchange,提问作者MCM13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:48:03