javascript - 在函数外部使用 jquery 变量

标签 javascript jquery

如何在声明变量的函数之外使用变量?

想要编辑完整代码,以获得更多帮助。

$(document).ready(function(){
    var bank_id = null;
    var purpose_id = null;
    $('#bank_id').on('change',function(e)
    {
        bank_id = e.target.value;
    });

    $('#purpose_id').on('change',function(e)
    {
        purpose_id = e.target.value;
    });

    var data = {
        "purpose_id" : purpose_id,
        "bank_id" : bank_id
    };

    $.post("financialLoans/getRates", data, function(result){
    });



});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" required="" id="bank_id" name="bank_id"><option selected="selected" value="">Select</option><option value="1">Foo.</option><option value="2">bar</option>
</select>
<select class="form-control" required="" id="purpose_id" name="purpose_id"><option selected="selected" value="">Select</option><option value="1">Foo.</option><option value="2">bar</option>
</select>

最佳答案

您可以在所有函数之外(与全局作用域相同)使用 var 来声明全局变量。
注意:var 将在变量所在的位置作用域,函数之外是全局作用域(或 window 对象,与第二个示例相同)>

var myGlobalVariable;
$('#bank_id').on('change',function(e) { ... });

或者,您可以使用window属性:

$('#bank_id').on('change', function(e) {
    window.myGlobalVariable = ...
});

<小时/> 片段示例:

//global variable
var globalVar = null;

$(document).ready(function(){
    //NOTE: bank_id is inside $(document).ready() scope, not global. But you still can use bank_id whenever you want inside this one.
    var bank_id = null;
    
    $('#bank_id').on('change',function(e) {
      //using bank_id inside $(document).ready() scope! :)
      bank_id = parseInt(e.target.value);
      globalVar = e.target.value;
    });
    
    $('#another_input').on('change', function(e) {
      //checking bank_id in another function! :D
      if(bank_id == 1){
        alert("Second input: " + e.target.value + " and bank_id is 1!");
      }else{
        alert("bank_id isn't 1. :(");
      }
      alert("Global variable changed too, it was null, and now have the same value as bank_id.\nCalling by name: " + globalVar + ".\nAnd calling by window object: " + window.globalVar + ".");
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="bank_id"/>
<input type="text" id="another_input"/>

关于javascript - 在函数外部使用 jquery 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48528308/

相关文章:

javascript - 手动触发触摸事件

javascript - 协助 JavaScript 算法

来自元组的 JavaScript 变量赋值

javascript - 连续切换 3 个 div 的 "addClass"

javascript - MVC : While retrieving the passed Json object from controller in view, JavaScript 错误

javascript - 外部文件无法加载 'load' 函数

jquery - wordpress插件中的ajax错误

javascript - jQuery 函数未正确执行

jquery - 从 jQuery 中的 .ajax 函数接收结果

javascript - 通过 AJAX 加载子菜单项的 HTML/javascript 上下文菜单