使用函数jQuery获取变量

时间:2015-01-24 02:58:56

标签: javascript jquery variables

我想知道每次调用子函数时是否可以在父函数中获取变量。

// Will alert the different variable within each parent function
function GetVariableEach() {
   alert(eachVar);
}


function function1() {
   var eachVar = "1";
   GetVariableEach();
}

function function2() {
   var eachVar = "2";
   GetVariableEach();
}

function function3() {
   var eachVar = "3";
   getVariableEach();
}

因此,应该发出3次警报,并且每次警报时都会发出相应的变量警告,显然这是一个示例,而不是正常工作的代码。

3 个答案:

答案 0 :(得分:0)

不可能这不可能,因为eachVar是本地的。这是将参数传递给函数的要点,即:

function GetVariableEach(myVar) {
    alert(myVar);
}


function function1() {
   var eachVar = "1";
   GetVariableEach(eachVar);
}

function function2() {
   var eachVar = "2";
   GetVariableEach(eachVar);
}

function function3() {
   var eachVar = "3";
   GetVariableEach(eachVar);
}

检查此项以获取有关功能参数http://www.w3schools.com/js/js_function_parameters.asp

的更多信息

答案 1 :(得分:0)

您只需将参数传递给GetVariableEach函数即可。有几种方法可以做到这一点,但是根据您的代码和您的要求,您可以采取以下方向:

function GetVariableEach(theVar) {
    alert(theVar);
}

function function1() {
    var eachVar = "1";
    GetVariableEach(eachVar);
}
function function2() {
    var eachVar = "2";
    GetVariableEach(eachVar);
}
function function3() {
    var eachVar = "3";
    GetVariableEach(eachVar);
}

或者,您可以创建一个函数数组并循环遍历它们以获取变量:

function function1() {
    var eachVar = "1";
    return eachVar;
}
function function2() {
    var eachVar = "2";
    return eachVar;
}
function function3() {
    var eachVar = "3";
    return eachVar;
}

function getAllFunctionValues() {
    var functionArray = [function1(), function2(), function3()];

    for (var i = 0; i < functionArray.length; i++) {
        alert(functionArray[i]);
    }
}

另外,你问了jQuery(我认为你不需要它)。但如果你想要它,这里是jQuery的一个基本例子:

function function1() {
    var eachVar = "1";
    return eachVar;
}
function function2() {
    var eachVar = "2";
    return eachVar;
}
function function3() {
    var eachVar = "3";
    return eachVar;
}

function getAllFunctionValues() {
    var functionArray = [function1(), function2(), function3()];
    var allValues = "";
    for (var i = 0; i < functionArray.length; i++) {
        allValues += functionArray[i] + "\n";
    }
    return allValues;
}
$(document).ready(function () {
    alert(getAllFunctionValues());
});

答案 2 :(得分:0)

尝试将eachVar存储为全局变量。这意味着您可以从任何方法访问变量,从而解决您的问题。这可以这样做:

var eachVar;

function func(){
    eachVar = "value";
}

function other function(){
    console.log(eachVar);    //Will return the value of eachVar
}

这确保变量对所有方法都可见,而不仅仅是单个方法。