Javascript 我在按钮上放置的EventListener在第一次单击时不起作用

Javascript 我在按钮上放置的EventListener在第一次单击时不起作用,javascript,html,event-handling,dom-events,Javascript,Html,Event Handling,Dom Events,这段代码唯一的问题是,当我点击playerone按钮或playertwo按钮时,它不会开始增加我的数字。其他一切都正常,只是我必须点击两次,让它开始递增。有没有一种方法可以让它在第一次点击时就这么做 <!DOCTYPE html> <html> <head> <title>Score Keeper</title> <script type="text/javascript" src="script.js">&

这段代码唯一的问题是,当我点击playerone按钮或playertwo按钮时,它不会开始增加我的数字。其他一切都正常,只是我必须点击两次,让它开始递增。有没有一种方法可以让它在第一次点击时就这么做

<!DOCTYPE html>
<html>
<head>
    <title>Score Keeper</title>
    <script type="text/javascript" src="script.js"></script>
</head>
<body>
    <h1><span id="player1Score">0</span> to <span id="player2Score">0</span></h1>
    <p>Playing to: <span id="matchScore">5</span></p>
    <div>
        <input type="number" name="matchScore">
        <button>Player One</button>
        <button>Player Two</button>
        <button>Reset</button>
    </div>
</body>
</html>

这是因为你编程的方式

 document.getElementById("player1Score").textContent = player1Score++
具体来说,player1Score++就是其中的一部分。这意味着,在您的案例中,当前值首先用于表达式,直接赋值,然后才递增

++player1Score将为您工作


关于此主题的教程之一:

这是因为您对其进行编程的方式

 document.getElementById("player1Score").textContent = player1Score++
具体来说,player1Score++就是其中的一部分。这意味着,在您的案例中,当前值首先用于表达式,直接赋值,然后才递增

++player1Score将为您工作


有关此主题的教程之一:

以下是您直接递增的答案

window.setTimeoutfunction{ 变量player1Score=0 var player2Score=0 var buttP1=document.querySelectorbutton var buttP2=document.querySelectorAllbutton[1] var buttReset=document.querySelectorAllbutton[2] var inputMatchScore=document.querySelectorinput buttP1.addEventListenerclick,函数{ ifdocument.GetElementByIdLayerScore.textContent 一号玩家 球员二 重置
以下是您直接递增的答案

window.setTimeoutfunction{ 变量player1Score=0 var player2Score=0 var buttP1=document.querySelectorbutton var buttP2=document.querySelectorAllbutton[1] var buttReset=document.querySelectorAllbutton[2] var inputMatchScore=document.querySelectorinput buttP1.addEventListenerclick,函数{ ifdocument.GetElementByIdLayerScore.textContent 一号玩家 球员二 重置
除了主要问题之外,代码中也没有理由使用setTimeout。将脚本标记移动到主体的末尾,就在标记之前,直接使用计时器函数的主体。甚至在模糊的现代浏览器上,您也可以将defer添加到脚本标记中。而且,没有理由反复向DOM询问相同的信息;相反,var list=document.querySelectorAllbutton您也可以使用getElementsByTagName,然后使用该列表来设置您的var。除了主要问题之外,代码中也没有理由使用setTimeout。将脚本标记移动到主体的末尾,就在标记之前,直接使用计时器函数的主体。甚至在模糊的现代浏览器上,您也可以将defer添加到脚本标记中。而且,没有理由反复向DOM询问相同的信息;相反,var list=document.querySelectorAllbutton您还可以使用getElementsByTagName,然后使用该列表设置您的变量。@T.J.Crowder-Replaced。非常感谢。因为我决定在我的简短回答中不使用后缀和前缀术语,所以需要一个用于此目的的教程。@T.J.Crowder-被替换。非常感谢。因为我决定在我的简短回答中不使用后缀和前缀术语,所以我需要一个教程。