在 for 循环(即 .each()
)中,如果满足条件,我需要将 openvalue 变量设置为 1。然后我需要在循环结束时访问该变量的值。无论情况如何,当我将变量打印到控制台时,结果始终为 0。我知道为什么(变量范围),但我想知道如何修改我的代码,以便在 forloop 中将 openvalue 设置为 1 ,该值将在 for 循环之外具有永久性。
var openvalue = 0; //sets default value
textinputs.each(function () {
var attr = $(this).attr('disabled');
if (attr == undefined || attr == false) {
var openvalue = 1; // if there is an input that is not disabled, set this value to 1
}
});
console.log(openvalue);
感谢您的帮助!
最佳答案
在循环中,声明一个具有相同名称的新变量。相反,您想要为已声明的变量分配一个值。因此,“openvalue = 1”而不是“var openvalue = 1”:
var openvalue = 0; //sets default value
textinputs.each(function () {
var attr = $(this).attr('disabled');
if (attr == undefined || attr == false) {
openvalue = 1; // if there is an input that is not disabled, set this value to 1
}
});
console.log(openvalue);
关于javascript - 扩大变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60312591/