<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?
答案 0 :(得分:1)
如上所述,你要用id替换整个类名,所以&#34;结果&#34;在className中也消失了。
您可以将马ID部分替换为新的部分,即
table[results.length].className = "result " + id;
OR
var currentClass = table[results.length].className;
table[results.length].className = currentClass.replace(/horse[0-9]/,id);
还有更多方法可以做到这一点,包括按空格分割类名等。