即使导入了jquery函数也无法定义

时间:2016-10-31 12:36:23

标签: javascript jquery csv

我正在使用Evan plaice jquery-csv libary但由于他的代码在谷歌代码弃用后没有更新,我现在遇到了很多麻烦才能让它正常工作。

我正在使用他上传csv文件的示例,它会解析文档,以便csv文件显示在网页Demo here上。

我从github下载了他的代码,但是由于他导入的googlecode不再工作,我把文件jquery.csv.js放在与我正在使用的文件相同的文件夹中。在jquery.csv.js中,有一个函数被调用,它在html文件中是toArray。我删除了用于<script src="http://jquery-csv.googlecode.com/git/src/jquery.csv.js"></script>的行并添加了<script type="text/javascript" src="./jquery.csv.js"></script>但是,无论出于何种原因,它都抱怨未定义toArry。

基本上代码是这样的:

function printTable(file) {
  var reader = new FileReader();
  reader.readAsText(file);
  reader.onload = function(event){
    var csv = event.target.result;
    var data = $.csv.toArrays(csv);  << The line that has problem.
    var html = '';
    for(var row in data) {
      html += '<tr>\r\n';
      for(var item in data[row]) {
        html += '<td>' + data[row][item] + '</td>\r\n';
      }
      html += '</tr>\r\n';
    }
    $('#contents').html(html);
  };
  reader.onerror = function(){ alert('Unable to read ' + file.fileName); };
}

在开发者控制台中,它表示:

  

未捕获的TypeError:无法读取未定义的属性'toArrays'       在FileReader.reader.onload(file:///Users/Jace/Downloads/jquery-csv-master/examples/file-handling.html:75:25)

1 个答案:

答案 0 :(得分:2)

我认为您遇到的问题是,当您删除对Google Code上托管的jquery-csv库的引用并包含您的本地版本时,您将其置于jQuery本身的引用之上。那是我注意到你所描述的错误的时候。您在JavaScript文件中加载的顺序很重要。例如,当文件B.js中的JavaScript代码依赖A.js中的代码时,{/ 1}}需要在 A.js之前指定

因此,基本上检查您在HTML文件中指定文件的顺序是否正确:

B.js

此外,前面的<body> <!-- HTML... --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script src="jquery.csv.js"></script> <!-- The "./" is not used here --> <script> // Code... </script> </body> 不是必需的,也不常见。在任何情况下我都没用过它。 ;)

我希望这对你来说更清楚一点!