我正在使用 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); };
}
在开发者控制台中它指示:
Uncaught TypeError: Cannot read property 'toArrays' of undefined at FileReader.reader.onload (file:///Users/Jace/Downloads/jquery-csv-master/examples/file-handling.html:75:25)
最佳答案
我认为您的问题在于,当您删除对托管在 Google Code 上的 jquery-csv 库的引用并包含您的本地版本时,您将其置于对 jQuery 本身的引用之上。那是我注意到您所描述的错误的时候。您在 JavaScript 文件中加载的顺序很重要。例如,当文件 B.js
中的 JavaScript 代码依赖于 A.js
中的代码时,需要指定 A.js
在 B.js
之前。
所以基本上检查您在 HTML 文件中指定文件的顺序是否正确:
<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>
还有,前面的./
不是必需的,也不常用。无论如何我从来没有使用过它。 ;)
我希望这能让你更清楚一点!
关于javascript - 即使导入了jquery函数也无法定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40342321/