背景
我正在制作足球联赛表。我希望它自动更新,所以我添加了一些功能,其中包含一个编辑团队表数据的按钮。这是我的主要功能,它根据所写的目标来决定比赛是输、赢还是平:
function PlayMatch()
{
/* We get scored and conceded goals */
var scored = document.getElementById("scored").value;
var conceded = document.getElementById("conceded").value;
var error = document.getElementById("error_filling");
/* We get sure that both fields are filled */
if ((scored == "") || (conceded == ""))
{
/* Show error message */
if (error.style.display === "none")
{
error.style.display = "block";
}
else
{
error.style.display = "block";
}
}
else
{
/* Hide error message */
if (error.style.display === "block")
{
error.style.display = "none";
}
else
{
error.style.display = "none";
}
/* We compare and decide if the match was a won, a draw or a lost */
if (scored > conceded)
{
Won();
}
else
{
if (scored == conceded)
{
Draw();
}
else
{
if (scored < conceded)
{
Lost();
}
}
}
}
}
Won、Draw 和 Lost 函数用于更改桌面上的团队数据。在这 3 个函数中的每一个函数的末尾,都会调用一个名为 Count 的函数,以更改桌上的有利目标、不利目标和目标差异。我没有展示他们的任何代码,因为我知道它们可以工作,而且这个问题会很长。
以下是与团队数据更新程序对应的代码,其中包含在 PlayMatch 函数中使用的隐藏错误消息:
<fieldset>
<legend>Malaga CF</legend>
<button onclick="PlayMatch()">Play Match</button>
<div id="error_filling" style="display:none; color:red; font-family:Impact">Both fields must be filled!</div>
<br><br>
Scored goals<input type="text" id="scored" size="2">
Conceded goals<input type="text" id="conceded" size="2">
</fieldset>
最后,这是排行榜:
<div id="DIV_league_table" align="left" style="display:block;">
<table width="60%" border="0" style="text-align:center;">
<tr class="top_row">
<th width="7%">POS</th>
<th width="35%">TEAM</th>
<th width="7%">PLYD</th>
<th width="7%">WON</th>
<th width="7%">DRW</th>
<th width="7%">LST</th>
<th width="7%">FVR</th>
<th width="7%">AGT</th>
<th width="7%">GD</th>
<th width="7%">PTS</th>
</tr>
<tr class="promotion_row" style="background:#01DF01;">
<td id="position">1</td> <!-- Position -->
<td id="team" align="left"> <img src="img/teams/malaga.png" width="15" height="15"> Malaga CF</td>
<td id="played">0</td> <!-- Played matches -->
<td id="wins">0</td> <!-- Wins -->
<td id="draws">0</td> <!-- Draws -->
<td id="loses">0</td> <!-- Loses -->
<td><span type="text" id="goalsInFavour">0</span></td> <!-- Goals in Favour -->
<td><span type="text" id="goalsAgainst">0</span></td> <!-- Goals Against -->
<td><span id="goalsDifference"></span></td> <!-- Goals Difference -->
<td id="points"><b>0</b></td> <!-- Points -->
</tr>
</table>
</div>
问题
现在我计划再增加 21 个团队,但如果我为每个团队使用不同的标签,代码会非常大,我现在不想要这样。这是替换之前团队数据更新器的代码:
<fieldset>
<legend>Match simulator</legend>
<select id="local_selector" onchange="AssignSide();">
<option value="1">Málaga CF</option>
<option value="2">Granada CF</option>
<option value="3">Deportivo</option>
<option value="4">Alcorcón</option>
<option value="5">UD Las Palmas</option>
<option value="6">Albacete</option>
<option value="7">RCD Mallorca</option>
<option value="8">Oviedo</option>
<option value="9">Almería</option>
<option value="10">Real Sporting</option>
<option value="11">Elche CF</option>
<option value="12">Osasuna</option>
<option value="13">Numancia</option>
<option value="14">Rayo Majadahonda</option>
<option value="15">CD Lugo</option>
<option value="16">Tenerife</option>
<option value="17">Reus Deportiu</option>
<option value="18">Zaragoza</option>
<option value="19">Cádiz</option>
<option value="20">Extremadura</option>
<option value="21">Nástic</option>
<option value="22">Córdoba</option>
</select>
<input type="text" id="scored_local" size="2">
<button onclick="JugarPartido()">Jugar Partido</button>
<input type="text" id="conceded_visitor" size="2">
<select id="visitor_selector" onchange="AssignSide();">
<option value="1">Málaga CF</option>
<option value="2">Granada CF</option>
<option value="3">Deportivo</option>
<option value="4">Alcorcón</option>
<option value="5">UD Las Palmas</option>
<option value="6">Albacete</option>
<option value="7">RCD Mallorca</option>
<option value="8">Oviedo</option>
<option value="9">Almería</option>
<option value="10">Real Sporting</option>
<option value="11">Elche CF</option>
<option value="12">Osasuna</option>
<option value="13">Numancia</option>
<option value="14">Rayo Majadahonda</option>
<option value="15">CD Lugo</option>
<option value="16">Tenerife</option>
<option value="17">Reus Deportiu</option>
<option value="18">Zaragoza</option>
<option value="19">Cádiz</option>
<option value="20">Extremadura</option>
<option value="21">Nástic</option>
<option value="22">Córdoba</option>
</select>
<div id="error_filling" style="display:none; color:red; font-family:Impact">Both fields must be filled!</div>
</fieldset>
我更喜欢桌子保持不变,每个具有相同 id 的球队都会因为输掉的比赛而“输掉”。然后,如果我在 local_selector 下拉列表中选择例如马拉加 CF,将其变量更改为“played_local”、“wins_local”等,以根据比赛结果编辑它们,而不编辑其余球队,然后将它们转回“played” ,“胜利”等。
这可能吗?如果需要,我可以提供更多信息。抱歉,如果我忘记翻译代码的某些部分(我最初有西班牙语的名称和 ID),或者如果我发布了很多信息,但我想提供尽可能多的上下文,因为这些变量会影响代码的许多部分。