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

无法为NodeList中多元素设置textContent?TypeError报错求助

问题原因及解决办法

错误根源在于你用了for...in遍历querySelectorAll返回的NodeList对象。for...in会遍历对象的所有可枚举属性,除了DOM元素,它还会把NodeList自带的length、item这类属性也遍历进去。当循环到i = 'length'时,copyright[i]就是数字2(你页面里正好有2个目标元素),这显然不是DOM对象,自然没法赋值textContent。

下面是几种正确的写法:

方法1:用for...of遍历(推荐,简洁直观)

const copyright = document.querySelectorAll('.copyright')
for (const elem of copyright) {
    elem.textContent = new Date().getFullYear()
}

方法2:传统for循环(兼容性好,适合旧环境)

const copyright = document.querySelectorAll('.copyright')
for (let i = 0; i < copyright.length; i++) {
    copyright[i].textContent = new Date().getFullYear()
}

方法3:NodeList自带的forEach方法(最简洁)

document.querySelectorAll('.copyright').forEach(elem => {
    elem.textContent = new Date().getFullYear()
})

不管用哪种方法,都能确保只遍历到目标DOM元素,不会再出现类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:45:35