无法在HTML集合上使用foreach循环
P粉930534280
P粉930534280 2023-08-29 09:48:35
[HTML讨论组]

我有两个文件,一个是js文件:

const a = document.getElementsByTagName("body")[0];

const d = a.getElementsByTagName("h1");

d.forEach(element => {
   element.innerHTML = "文本已更改";
});

还有一个是html文件:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>David
</title>
  </head>
  <body>
    <h1>你好1</h1>
    <h2>大卫</h2>
    <h3>亚里尔</h3>
    <h4>雅哈夫</h4>
    <h1>你好2</h1>
    <h1>你好3</h1>
    <script src="food.js"></script>
  </body>
</html>

我试图将每个h1元素的文本更改为相同的文本,但是它没有起作用,也就是说当我在浏览器上运行时,所有的"h1"文本仍然保持不变。

不确定为什么,因为"d"是一个html集合,我用foreach在它上面运行。

基本上一切都很简单,所以不确定我可以尝试什么。

感谢任何帮助!

P粉930534280
P粉930534280

全部回复(1)
P粉864594965

你不应该使用forEach,因为HTMLCollections没有实现forEach方法。

使用for循环

const a = document.getElementsByTagName('body')[0]
const d = a.getElementsByTagName('h1')

for (let elem of d) {
    elem.innerHTML = '新文本'
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号