数组调用返回undefined

时间:2015-07-01 15:30:56

标签: javascript

我正在尝试打印数组(行),但它只能在函数内部(过程数据),但如果我在外面调用它是未定义的。

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "data.txt",
        dataType: "text",
        success: function(data) {processData(data);}
     });
});


var lines = [];

function processData(allText) {
    var allTextLines = allText.split(/\r\n|\n/);
    var headers = allTextLines[0].split(',');


    for (var i=1; i<allTextLines.length; i++) {
        var data = allTextLines[i].split(',');
        if (data.length == headers.length) {

            var tarr = [];
            for (var j=0; j<headers.length; j++) {
                tarr.push(data[j]);
            }


            lines.push(tarr);
        }
    }

}

 alert(lines);

1 个答案:

答案 0 :(得分:2)

您正在等待功能调用之前打印它。这样做:

<html>
<head>
  <style type="text/css">

  #about {
    z-index:1;
    position:absolute;
    top:10%;
    left:3%;
    opacity: 0.6;
  }

  #main-content-image {
    height:100%;
    position:relative;
  }

  </style>


  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
  </script>
  <script type="text/javascript">
  $(document).ready(function(){    

    $(function () {
      var img = new Image();
      $(img).load(function () {
        $('#main-content-image').append(this);
      }).attr('src', 'foo.jpg');
    });

  });
  </script>
</head>
<body>

  <div id="main-content-image">
    <img id="about" src='bar.jpg'>
  </div>

</body>
</html>