javascript - JS循环遍历数组来改变段落的innerHTML
问题描述
我还在学习js的基础知识。在这个问题中,我的预期结果是得到 a,b,c,d 但它给出了 a,b,c,c。谁能解释一下?当我输入 x[3] 时,它会打印 a、b、c、d。
<p>a</p>
<p>b</p>
<p>c</p>
<p id="demo">d</p>
<script>
var x = document.getElementsByTagName("p");
var i;
for (i = 0; i < x.length; i++) {
document.getElementById("demo").innerHTML = x[i].innerHTML;
}
</script>
解决方案
这里的问题是,当您的代码循环到具有“演示”ID 的 p 标记时,它会将自己的值读取为“c”,因为这是您在上一次迭代中分配的值。
这样<p id="demo">d</p>
就变成了
为 i=0
b 代表 i=1
c 对于 i=2
当它到达 i=3 时,它读取自身的值为“c”,因此它将自己重新分配为“c”。
推荐阅读
- android - javax.net.ssl.SSLHandshakeException:java.lang.IllegalArgumentException:toASCII的无效输入:ip_nbae7bac35.kodrive.xyz
- javascript - 删除十进制 TypeScript 或 JavaScript 后的值
- reactjs - 无法将 Promise 中的数据绑定到 React 组件
- python - 如何读取python烧瓶jsonify响应对象
- node.js - 如何让本地 Heroku 应用程序连接到远程 REDIS?
- counter - 计数器不计数
- wordpress - 现代部落活动日历,将单词“Event”更改为“Classes”,“Venue”更改为“Location”
- c# - 获取在 C# 中输入控制台输入所花费的时间
- node.js - 我可以通过 Firebase Cloud Functions 压缩 Firebase 存储中的文件吗?
- ruby-on-rails - FactoryBot 获取工厂的可用特征