jQuery获取CSV文件时出错

时间:2011-11-18 16:51:24

标签: jquery csv get

这是我的相关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 我在尝试将数据分成行之前添加了数据警报,并得到以下内容:

  

[Object XMLDocument]

3 个答案:

答案 0 :(得分:1)

我相信你误解了jQuery.get()的用法。

来自doc page"...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');
});

修改::  由于您说数据已正确“加载”,请尝试此fiddle。它工作得很好。


EDIT2 ::

您的上一次编辑提供了一些有趣的见解。当它拉动.csv文件时,它将其转换为XML与文本的类型。请尝试以下方法:

$.get('http://url.to.server.page',function(data){
    var dataStr = new String(data);
    var lines = dataStr.split('\n');
},dataType='text');

这应该将返回的'数据'放入正确的字符串格式。

答案 1 :(得分:1)

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");

然后它会起作用。

http://api.jquery.com/jQuery.get/

答案 2 :(得分:0)

你几乎就在那里。缺少最后的括号,需要一个不同的分裂字符。

$.get('sampleData.csv', function(data) {
var lines = data.split(',');
});

修改

啊你把你的CSV改成了两行,我以为它只是用逗号分隔的一行而不是由新行分隔的数据,也用逗号分隔。下面我重新测试并为我工作。

<html>
<head>
<script type="text/javascript">Jquery Reference or insert directly here </script>
</head>
<body>
<script>
$(document).ready(function(){

    $.get('csv.csv', function(data) {
    // Split the lines
    var lines = data.split('\n');
    var i = 0;

    for(i=0; i<lines.length; i++)
    {
       alert(lines[i]);
    }

}); 

});
</script>
</body>

</html> 

我刚在桌面上使用你粘贴在同一个地方的csv上的那个html文件。