我的这段代码唯一的问题是,当我单击“播放器一”按钮或“播放器二”按钮时,它不会开始增加我的数字。其他一切正常,只是我必须单击两次以使其开始递增。有什么方法可以让我从第一次点击开始?
<!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>
window.setTimeout(function() {
var player1Score = 0
var player2Score = 0
var buttP1 = document.querySelector("button")
var buttP2 = document.querySelectorAll("button")[1]
var buttReset = document.querySelectorAll("button")[2]
var inputMatchScore = document.querySelector("input")
buttP1.addEventListener("click", function(){
if(document.getElementById("player1Score").textContent < Number(document.getElementById("matchScore").textContent)){
document.getElementById("player1Score").textContent = player1Score++
}
})
buttP2.addEventListener("click", function(){
if(document.getElementById("player2Score").textContent < Number(document.getElementById("matchScore").textContent)){
document.getElementById("player2Score").textContent = player2Score++
}
})
buttReset.addEventListener("click", function(){
document.getElementById("player1Score").textContent = 0
document.getElementById("player2Score").textContent = 0
player1Score = 0
player2Score = 0
})
inputMatchScore.addEventListener("input", function(){
document.getElementById("matchScore").textContent = document.querySelector("input").value
})
}, 500);
这里是您直接增加的答案。
window.setTimeout(function() {
var player1Score = 0
var player2Score = 0
var buttP1 = document.querySelector("button")
var buttP2 = document.querySelectorAll("button")[1]
var buttReset = document.querySelectorAll("button")[2]
var inputMatchScore = document.querySelector("input")
buttP1.addEventListener("click", function(){
if(document.getElementById("player1Score").textContent < Number(document.getElementById("matchScore").textContent)){
document.getElementById("player1Score").textContent++
}
})
buttP2.addEventListener("click", function(){
if(document.getElementById("player2Score").textContent < Number(document.getElementById("matchScore").textContent)){
document.getElementById("player2Score").textContent++
}
})
buttReset.addEventListener("click", function(){
document.getElementById("player1Score").textContent = 0
document.getElementById("player2Score").textContent = 0
player1Score = 0
player2Score = 0
})
inputMatchScore.addEventListener("input", function(){
document.getElementById("matchScore").textContent = document.querySelector("input").value
})
}, 500);
<!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++
这是由于您编程的方式。
document.getElementById("player1Score").textContent = player1Score++
特别是player1Score++
部分。这意味着在表达式中首先使用当前值(在您的情况下为直接赋值),然后才递增。
++player1Score
将为您服务。
关于以下主题的教程之一:https://www.tutorialgateway.org/increment-and-decrement-operators-in-javascript/
这里是您直接增加的答案。
window.setTimeout(function() {
var player1Score = 0
var player2Score = 0
var buttP1 = document.querySelector("button")
var buttP2 = document.querySelectorAll("button")[1]
var buttReset = document.querySelectorAll("button")[2]
var inputMatchScore = document.querySelector("input")
buttP1.addEventListener("click", function(){
if(document.getElementById("player1Score").textContent < Number(document.getElementById("matchScore").textContent)){
document.getElementById("player1Score").textContent++
}
})
buttP2.addEventListener("click", function(){
if(document.getElementById("player2Score").textContent < Number(document.getElementById("matchScore").textContent)){
document.getElementById("player2Score").textContent++
}
})
buttReset.addEventListener("click", function(){
document.getElementById("player1Score").textContent = 0
document.getElementById("player2Score").textContent = 0
player1Score = 0
player2Score = 0
})
inputMatchScore.addEventListener("input", function(){
document.getElementById("matchScore").textContent = document.querySelector("input").value
})
}, 500);
<!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>