【发布时间】:2018-05-18 00:11:07
【问题描述】:
我开始学习 JavaScript,并正在使用 DOM 操作构建一个石头、纸、剪刀游戏。
到目前为止,我正在尝试将 HTML 按钮链接到播放器选项:
<div class="choices">
<button id="rock">Rock</button>
<button id="paper">Paper</button>
<button id="scissors">Scissors</button>
</div>
然后我使用 Javascript 来尝试捕获按钮的值以在游戏功能中使用:
JavaScript
<script>
const el = document.getElementsByTagName('button');
for (let i = 0; i <= el.length; i++) {
console.log(el[i].innerHTML);
}
但是,上面的代码在控制台中提供了以下结果:
Rock
Paper
Scissors
Uncaught TypeError: Cannot read property 'innerHTML' of undefined at
ui_rps.html:38
所以返回了数组,但是有错误?有人可以帮忙解释一下为什么会这样以及如何删除它吗?
【问题讨论】:
-
for (let i = 0; i <= el.length; i++) {Javascript 类数组对象是零索引的;arrayLike[arrayLike.length]不应该存在。更改为i < el.length。更好的是,使用forEach而不是for循环 -
会做的,谢谢。
-
经典的一对一错误。请尝试使用浏览器的debugging capabilities。 Rubber Duck Debug你的代码。
标签: javascript dom innerhtml console.log