2011-11-18 67 views
3

这里是我的相关jQuery代码:错误使用jQuery获得CSV文件

$.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]

+1

什么是你得到的具体语法错误。 –

回答

1

我相信你误解了jQuery.get()被假定用于什么。

从它的doc page"...Load data from the server using a HTTP GET request...."

上的文件做一个$获得()不会得到你该文件的数据转换成可使用的结构。你必须通过一个服务器来请求这个服务器,然后它将提供.csv数据......它应该看起来像下面

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

编辑:: 既然你说的数据被“加载”正常,试试这个fiddle。它工作得很好。


EDIT2 ::

上次编辑了一些有趣的见解。当它拉取.csv文件时,它将其转换为XML vs text的一种类型。请尝试以下操作:

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

这应该将返回的'数据'转换为正确的字符串格式。

+0

根据萤幕控制台,它似乎正在检索数据。 – dmr

+0

这似乎是你的第一个答案(误解jQuery得到)是正确的。谢谢! – dmr

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> 

我刚刚把桌面上的html文件粘贴在同一个地方的csv上。

+0

不会将数据拆分成行...... – g19fanatic

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/