Ошибка с получением jQuery файла CSV - PullRequest
3 голосов
/ 18 ноября 2011

Вот мой соответствующий код 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-файла я получаю сообщение об ошибке

синтаксическая ошибка

Во 2-й строке кода я получаю ошибку

data.split не является функцией

Что я делаю не так?

ETA В соответствии с консолью firebug текст ответа следующий:

2009,0,2,29.0000 \ г \ n2009 ... \ г \ n2011,10,30,494.3500 \ г \ п

ETA Я добавил предупреждение о данных, прежде чем пытаться разбить их на строки, и получаю следующее:

[Объект XMLDocument]

Ответы [ 3 ]

1 голос
/ 18 ноября 2011

Полагаю, вы неправильно поняли, для чего предполагается использовать 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');
});

EDIT :: Поскольку вы говоритеданные загружаются правильно, попробуйте 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 голос
/ 25 мая 2012

JQuery код:

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

работает до версии 1.5 jquery.
Начиная с версии 1.5 функции обратного вызова в методе get () передается объект "jqXHR", а не объект "XMLHttpRequest".
Код можно изменить на:

$.get('data.csv', function(data) {
  var lines = data.split('\r\n');
}, "text");

Тогда это будет работать.

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

0 голосов
/ 18 ноября 2011

Твой почти там.Отсутствует последняя скобка и нужен другой символ разделения.

$.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, который вы вставили в то же место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...