首页 > 解决方案 > 扩大变量范围

问题描述

在 for 循环(即.each())中,如果满足条件,我需要将 openvalue 的变量设置为 1。然后我需要在循环结束时访问这个变量的值。无论哪种情况,当我将变量打印到控制台时,结果始终为 0。我知道为什么(变量范围),但我想知道如何修改我的代码,以便在 forloop 中将 openvalue 设置为 1 ,该值将在 forloop 之外具有永久性。

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);

谢谢你的帮助!

标签: javascriptjquery

解决方案


在您的循环中,您声明一个具有相同名称的新变量。相反,您想为已声明的变量赋值。因此,“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);

推荐阅读