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

使用forEach()遍历数组时innerHTML赋值显示undefined问题求助

问题原因

document.querySelectorAll() 返回的是包含所有匹配元素的 NodeList 集合,不是单个DOM节点,该集合本身没有 innerHTML 属性,直接访问该属性会得到 undefined,因此页面无法正常渲染内容。

解决方案

场景1:仅需要给单个 .contacts 元素追加内容

使用 document.querySelector() 直接获取单个匹配元素即可,同时建议先拼接所有待插入的HTML字符串再一次性赋值,减少DOM操作次数提升性能:

const phoneNos = () => {
  const contactsEle = document.querySelector('.contacts');
  let insertHtml = '';
  dBase.name.phones.forEach(phone => {
    insertHtml += '<span class="pnumber">' + phone + '</span>';
    console.log(phone);
  })
  contactsEle.innerHTML += insertHtml;
}

场景2:需要给所有匹配到的 .contacts 元素都追加内容

遍历 querySelectorAll 返回的NodeList,给每个元素单独追加内容:

const phoneNos = () => {
  const contactsEles = document.querySelectorAll('.contacts');
  let insertHtml = '';
  dBase.name.phones.forEach(phone => {
    insertHtml += '<span class="pnumber">' + phone + '</span>';
    console.log(phone);
  })
  contactsEles.forEach(ele => ele.innerHTML += insertHtml);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:06:07