javascript - 扩大变量范围

标签 javascript jquery

在 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/

相关文章:

javascript - 如何在特定的 div 中显示 Canvas 场景?

javascript - jQuery 更改事件不会在动态创建的元素上触发

javascript - axios 请求并行

javascript - 添加更多内容(例如图像)后,如何保持我的内容不从网格内部移动?

javascript - 内部 $.getJSON 不会转到循环中的第二个元素

jquery - 在使用 jquery validate 时,我应该对这个特定的 css 做些什么更改以防止错误?

javascript - 用jquery将点击的对象id变成变量进行优化

javascript - 悬停图像时播放音频

javascript - 在 getElementsByClassName 中获取文本

javascript - 翻转操作数时,将空数组与空对象相加会产生不同的结果