如何在javascript中从函数外部获取值?

时间:2011-09-27 09:17:17

标签: javascript

如何从另一个函数中获取var值?

的jQuery

$(document).ready(function() {
    function GetBiggestValue() {
        var value = 0;
        $('#tagCloud li a').each(function() {
            if (value < $(this).attr('value')) {
                value = $(this).attr('value');
            }
        });
        var FullValue = value;
    }

    function Abc(){
        console.log(FullValue);
    }

    Abc();
});

HTML:

<ul id="tagCloud">
    <li><a href="#" value="1">Val 1</a></li>
    <li><a href="#" value="2">Val 2</a></li>
    <li><a href="#" value="3">Val 3</a></li>
    <li><a href="#" value="4">Val 4</a></li>
</ul>

4 个答案:

答案 0 :(得分:3)

您无法从您自己或父上下文之一的其他上下文中访问变量。 FullValue变量是GetBiggestValue()函数的私有变量,因为您使用var语句来定义变量。在您的情况下,正确的过程是从value函数返回GetBiggestValue()(尽管可能会使用GetBiggestValue()之外的变量来提供另一个解决方案来存储该值。

$(document).ready(function() {
    function GetBiggestValue() {
        var value = 0;
        $('#tagCloud li a').each(function() {
            if (value < $(this).attr('value')) {
                value = $(this).attr('value');
            }
        });
        return value;
    }

    function Abc(){
        console.log(GetBiggestValue());
    }
    Abc();
});

答案 1 :(得分:1)

可能你想在任何地方使用这个值。因此,调用GetBiggestValue()函数并为其赋值变量。

function GetBiggestValue() {
    var value = 0;
    $('#tagCloud li a').each(function() {
        if (value < $(this).attr('value')) {
            value = $(this).attr('value');
        }
    });
    return value;
}

var FullValue = GetBiggestValue();

function Abc(){
    console.log(FullValue);
}

答案 2 :(得分:0)

只需从GetBiggestValue函数返回值:

function GetBiggestValue() {
    var value = 0;
    $('#tagCloud li a').each(function() {
        if (value < $(this).attr('value')) {
            value = $(this).attr('value');
        }
    });
    return value;
}

function Abc(){
    console.log(GetBiggestValue());
}

答案 3 :(得分:-1)

在函数外面声明

var value = 0;
$(document).ready(function() {
function GetBiggestValue() {
        value = 0;
        $('#tagCloud li a').each(function() {
            if (value < $(this).attr('value')) {
                value = $(this).attr('value');
            }
        });

    }
    function Abc(){
        console.log(value);
    }
    Abc();
});

或返回值