0

背景

我正在制作足球联赛表。我希望它自动更新,所以我添加了一些功能,其中包含一个编辑团队表数据的按钮。这是我的主要功能,它根据所写的目标来决定比赛是输、赢还是平:

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>

        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

        <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">

        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

        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">&nbsp;&nbsp;&nbsp;<img src="img/teams/malaga.png" width="15" height="15">&nbsp; 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>

        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

        <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),或者如果我发布了很多信息,但我想提供尽可能多的上下文,因为这些变量会影响代码的许多部分。

4

0 回答 0