2011-11-18 65 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/