这是我的相关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]
答案 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");
然后它会起作用。
答案 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文件。