Javascript元素,给出更新前的文本



当我遇到这个错误时,我刚刚试图编写一些代码来测试简单数学问题上的篡改猴子的东西。它可以用于第一个问题,得到问题,解决它,输入答案。元素然后改变为一个新的问题,但当我使用。innerhtml或。textcontent时,它总是给出原来的问题。

我的代码如下:

console.log(document.getElementById('currgamename'))
console.log(document.getElementById('currgamename').textContent)

我得到这样的输出:

<span id="currgamename">12-7</span>
6-3 //The first question that appears

完整代码:

var delayInMilliseconds = 1000; //1 second
var x = 0
setTimeout(function() {
var handler = setInterval(function() {
document.getElementById('playPadding').childNodes[1].click()
var equation = document.getElementById('currgamename').textContent
var actual = equation.split('-')
var answer = (parseInt(actual[0]) - parseInt(actual[1])).toString()
document.getElementById('currgamename').innerHTML = 'hello'
console.log(document.getElementById('currgamename'))
console.log(document.getElementById('currgamename').textContent)
document.getElementById('gameinput').value = answer
document.getElementById('nextButton').click()
x++;
if (x >= 5) {
clearInterval(handler);
}
}, 1000);
}, delayInMilliseconds);

我完全不知道为什么它给出了更新的元素,而不是更新的文本,所以我真的可以在这里使用一些澄清,谢谢!

在控制台上:

>document.querySelector("#currgamename")
<-<span id="currgamename">12-7</span>
>document.querySelector("#currgamename").textContent = "hello"
<-"hello"
------And the HTML on the screen changed to show the "hello" instead of "12-7"------
>document.querySelector("#currgamename").innerHTML = "bye"
<-"bye"
>document.querySelector("#currgamename").innerText
<"bye"

只要querySelector指向正确的元素它就能工作

我真的不能相信我的愚蠢,我已经在这4个小时了,错误是我有document.getElementById('playPadding').childNodes[1].click()在setinterval内。每当我想回答一个新问题时,它就按开始键,所以它只是用旧的FML代替它。

最新更新