jQuery获取CSV文件时出错
这是我的相关jQuery代码:
$.get('sampleData.csv', function(data) { var lines = data.split('\r\n');
sampleData.csv文件的前几行如下所示:
2009,0,2,29.0000
2009,0,6,655.6200
我得到2个错误。 在csv文件的第一行,我收到错误
语法错误
在第二行代码我得到错误
data.split不是一个函数
我究竟做错了什么?
ETA根据firebug控制台,responseText如下:
2009,0,2,29.0000 \ r \ n2009,… \ r \ n2011,10,30,494.3500 \ r \ n
ETA我在尝试将数据拆分成行之前添加了数据警报,我得到以下结果:
[对象XMLDocument]
我相信你误解了jQuery.get()的用法。
从它的doc页面 , "...Load data from the server using a HTTP GET request...."
对文件执行$ .get()不会将该文件的数据转换为可以使用的结构。 你必须通过服务器请求这个,然后提供.csv数据…它应该类似于以下内容
$.get('http://url.to.server.page',function(data){ var dataStr = new String(data); var lines = dataStr.split('\n'); });
编辑::既然你说数据被正确“加载”,试试这个小提琴 。 它工作得很好。
EDIT2 ::
您的上一次编辑给了一些有趣的见解 当它拉动.csv文件时,它将其转换为XML与文本的类型。 请尝试以下方法:
$.get('http://url.to.server.page',function(data){ var dataStr = new String(data); var lines = dataStr.split('\n'); },dataType='text');
这应该将返回的’数据’放入正确的字符串格式。
jQuery代码:
$.get('data.csv', function(data) { var lines = data.split('\r\n'); });
工作到jquery版本1.5。
从版本1.5开始,get()方法中的回调函数传递“jqXHR”对象,而不是“XMLHttpRequest”对象。
代码可以更改为:
$.get('data.csv', function(data) { var lines = data.split('\r\n'); }, "text");
然后它会工作。
你快到了。 缺少最后的括号,需要不同的分割字符。
$.get('sampleData.csv', function(data) { var lines = data.split(','); });
编辑
啊你把你的CSV改成了两行,我以为它只是用逗号分隔的一行而不是由新行分隔的数据,也用逗号分隔。 下面我重新测试并为我工作正常。
我只是在我的桌面上使用你粘贴在同一个地方的csv的那个html文件。