如何在此jquery循环之外访问此变量?

时间:2011-04-05 08:43:34

标签: javascript jquery

我有一个简单的jquery循环遍历我的表单和

  1. 查看是否有空字段。
  2. 如果有空,请使用“空”类和
  3. 标记它们
  4. 然后创建一个'错误'变量
  5. 基本上:

    // check all the inputs have a value...
    $('input').each(function() {
    
        if($(this).val() == '') {
    
            $(this).addClass('empty');
            var error = 1;
    
        }   
    
    });
    

    这很有魅力。但是,随着我的代码继续,我似乎无法访问该“错误”变量......好像它被锁定在每个循环中。以下代码就在.each()循环之后,我永远不会触发my_error_function(),即使我知道标准1和2正在运行。

    if(error == 1) {
    
        my_error_function();
    
    } else {
    
        my_non_error_function();
    
    }
    

    如何访问此变量以便我可以在代码的其他位置使用其结果?

2 个答案:

答案 0 :(得分:12)

在函数/循环

之外定义错误变量
var error = 0;
$('input').each(function() {

    if($(this).val() == '') {

        $(this).addClass('empty');
        error = 1;

    }   

});

答案 1 :(得分:2)

在范围外定义变量或将其分配给全局变量。名称间隔变量也起作用(例如foo.bar.error = 1)

$('input').each(function() {
   if($(this).val() == '') {
    $(this).addClass('empty');
    window.error = 1;
   }   
});

...

alert(error);