退出定义它的函数时,全局变量值将丢失

时间:2014-09-03 13:34:02

标签: javascript jquery

我写了一段读取文本文件的javascript / jquery 我在使用变量" fieldname"时遇到问题。我在外部函数()中声明它,并在内部函数()中为它分配一个实际读取文件的值。但是在我离开内部函数之后,变量的内容就丢失了。代码:

<script>
    $(document).ready(function(){

        var usedlanguage = $("#usedlanguage").html();
        var fieldname = new Array();

        $.get('Language.txt', function(data)
        {
            var lines = data.split('\n');

            var res="";

            for(var i = 0; i<lines.length;i++)
            {
                var splitup = lines[i].split('\t');

                fieldname[i] = splitup[0];
                res = res + fieldname[i] + '\n';
            }

            alert("fieldname length = " + fieldname.length); // here everything is OK
            alert("" + res);                                //this is good.

        });

        alert("fieldname length = " + fieldname.length);    // here it suddenly returns 0.

 }); 
</script>     

我对范围的理解是否有问题?或者是定义了两个function()的问题?或其他什么?

1 个答案:

答案 0 :(得分:0)

您需要在DOM ready事件之外声明变量以使其成为全局变量。目前它的背景仍然只是在现成的事件中,而不是在此之外。以这种方式使用它::

var fieldname = new Array();
$(document).ready(function(){
  //rest code
});