我不能改变setInterval内的全局变量
I can't change global variable inside setInterval es6
我必须找到一个按钮时,它会出现。为了做到这一点,我使用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;
}
这是因为你在setInterval
中重新声明了foundValue
,所以你应该删除第二个let
,例如:
let foundValue;
function findById(id) {
let interval = setInterval(() => {
if (document.getElementById(id)){
foundValue = document.getElementById(id);
clearInterval(interval);
}
}, 1000);
return foundValue;
}
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- delete关键字在全局变量上的不同行为
- 在javascript函数中设置全局变量
- 如何将getJson的响应保存在全局变量中
- 从Javascript方法返回全局变量
- AngularJS中的封装窗口全局变量
- javascript隐式全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 如何使全局变量仅特定于该文件
- 在page.open()-PhantomJS中无法访问全局变量
- 使用全局变量来存储数字(JavaScript)
- 如何将变量声明为全局变量
- 在节点中创建文件全局变量
- 在Javascript中使用全局变量作为缓存是很好的
- 创建要在其他函数中使用的全局变量
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 函数中的innerHTML(全局变量?)
- 如何在javascript中为全局变量赋值
- 全局变量只能由第一个函数访问
- 没有通过ajax调用设置Javascript全局变量