【发布时间】:2018-03-28 18:51:33
【问题描述】:
<tr>
<td>1st</td>
<td class="result horse1"></td>
</tr>
<tr>
<td>2nd</td>
<td class="result horse2"></td>
</tr>
<tr>
<td>3rd</td>
<td class="result horse3"></td>
</tr>
<tr>
<td>4th</td>
<td class="result horse4"></td>
</tr>
这是一个 javascript 游戏,当马越线时,它会执行 this.finish 函数。
它将通过更改类以包含ID 来获取结果并将它们显示在表格中。这很好用,但是当我将 ID 推入数组时,它只会在抛出错误之前存储两个 id。
if (horse.lap == laps && horse.x == horse.startX + 5) {
horse.finish();
}
this.finish = function() {
this.element.className = 'horse standRight';
var table = document.getElementsByClassName('result');
table[results.length].className = id;
results.push(id);
console.log(results);
}
var results = [];
在表格中显示结果的时候,也是跳过第二行,在第三行放一个id?
【问题讨论】:
-
由于您只用 ID 替换了类名,
document.getElementsByClassName('result')每次返回的项目数量较少,而您的results数组每次都在增长。最终数组变得比document.getElementsByClassName('result')更长,然后table[results.length]返回未定义。 -
"通过更改类以包含 ID"...但是您的代码没有在类中包含 ID,它替换所有其他只有 ID 的类
-
我明白了,大家干杯
标签: javascript html arrays push