我必须在它出现时找到一个按钮。为了做到这一点,我使用setInterval。当它找到这个按钮时,它会给我变量所需的值。我在setTimeout中检查它,但是在setTimeout之后(在这些方法之外),我的全局变量变为setTimeout之前的变量。如何解决?
let foundValue;
function findById(id) {
let interval = setInterval(() => {
if (document.getElementById(id)){
let foundValue = document.getElementById(id);
clearInterval(interval);
}
}, 1000);
return foundValue;
}
答案 0 :(得分:0)
这是因为你在foundValue
内重新声明setInterval
所以你应该删除第二个let
,例如:
let foundValue;
function findById(id) {
let interval = setInterval(() => {
if (document.getElementById(id)){
foundValue = document.getElementById(id);
clearInterval(interval);
}
}, 1000);
return foundValue;
}
答案 1 :(得分:0)
第一:在foundInterval之上应该是foundVue。
第二:即使 foundValue 也总是未定义。为什么?
let foundValue;
function findById(id) {
let interval = setInterval(() => {
foundValue = "x"
clearInterval(interval);
}, 1000);
return foundValue;
}
findById('main');
alert (foundInterval);