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


谢谢你的帮助!

最佳答案

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

09-12 01:22