将结果推送到数组
Pushing results to array
<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
函数。
它将获取结果并将它们显示在 table 中,方法是将 类 更改为包含 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 = [];
在table中显示结果时,也跳过第2行并在第3行放置一个id?
这是错误
如评论所述,您将整个类名替换为 id,因此类名中的 "result" 也消失了。
您可以将马 ID 部分单独替换为新的部分,即
table[results.length].className = "result " + id;
或
var currentClass = table[results.length].className;
table[results.length].className = currentClass.replace(/horse[0-9]/,id);
还有更多方法可以做到这一点,包括用 space 拆分类名等。
<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
函数。
它将获取结果并将它们显示在 table 中,方法是将 类 更改为包含 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 = [];
在table中显示结果时,也跳过第2行并在第3行放置一个id?
这是错误
如评论所述,您将整个类名替换为 id,因此类名中的 "result" 也消失了。
您可以将马 ID 部分单独替换为新的部分,即
table[results.length].className = "result " + id;
或
var currentClass = table[results.length].className;
table[results.length].className = currentClass.replace(/horse[0-9]/,id);
还有更多方法可以做到这一点,包括用 space 拆分类名等。