gpt4 book ai didi

javascript - 无法从回调中更新 的 textContent(已分配给变量)

转载 作者:行者123 更新时间:2023-11-30 11:11:34 26 4
gpt4 key购买 nike

我有一个简单的 HTML 页面

enter image description here

当我按下按钮“Player 1”和“Player 2”时,我希望更改反射(reflect)在页面上。在控制台分数上升,一切都很好,但为什么页面不更新更改的分数? (let p1scorelet p2score)

这是我的代码,谢谢!

const p1button = document
.querySelector('#p1')
.addEventListener('click', scoreUp);
const p2button = document
.querySelector('#p2')
.addEventListener('click', scoreUp);

let p2score = document.querySelector('#p2score').textContent;
let p1score = document.querySelector('#p1score').textContent;

function scoreUp(e) {
if (e.target.textContent === 'Player 1') {
p1score++;
console.log(p1score);
} else {
p2score++;
console.log(p2score);
}
}

最佳答案

当您执行 let p1score = document.querySelector('#p1score').textContent; 时,您有效地保存了文本内容的值,而不是引用那个值。因此,p1scorep2score 拥有文本内容值(整数)的唯一副本。

因此,当您增加 p1scorep2score 时,您只是在增加这些变量所持有的值。因此,一旦您增加了您的值(value),您应该通过执行

将文本内容设置为增加的值

pScoreOneElem.textContent = p1score;

pScoreTwoElem.textContent = p2score;

这将通过更改其值以反射(reflect)对 p1scorep2score 的更改来有效地更新文本内容:

const p1button = document
.querySelector('#p1')
.addEventListener('click', scoreUp);
const p2button = document
.querySelector('#p2')
.addEventListener('click', scoreUp);

let pScoreOneElem = document.querySelector('#p1score');
let pScoreTwoElem = document.querySelector('#p2score');

let p2score = pScoreTwoElem.textContent;
let p1score = pScoreOneElem.textContent;

function scoreUp(e) {
if (e.target.textContent === 'Player 1') {
p1score++;
pScoreOneElem.textContent = p1score;
console.log(p1score);
} else {
p2score++;
pScoreTwoElem.textContent = p2score;
console.log(p2score);
}
}
<button id="p1">Player 1</button>
<button id="p2">Player 2</button>

<br />
<div class="player-scores">
Player 1 Score: <span id="p1score">0</span>
<br />
Player 2 Score: <span id="p2score">0</span>
</div>

关于javascript - 无法从回调中更新 <span> 的 textContent(已分配给变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53424150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com