Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery CSV插件赢得';t将行拆分为数组的数组_Javascript_Jquery_Html_Csv_Html Table - Fatal编程技术网

Javascript jQuery CSV插件赢得';t将行拆分为数组的数组

Javascript jQuery CSV插件赢得';t将行拆分为数组的数组,javascript,jquery,html,csv,html-table,Javascript,Jquery,Html,Csv,Html Table,我正在尝试使用jQuery“CSV”插件,如下所述: 根据文件: // Convert CSV data into array of arrays jQuery.csv()("1,2,3\n4,5,6\n7,8,9\n"); // = [ [1,2,3], [4,5,6], [7,8,9] ] 但是当我尝试做类似的事情时,它似乎把“\n”当作数组元素中间的另一个字符。< /P> 我做错了什么? 我正在使用jQuery1.4.2和Firefox3.5.10进行测试。我还用jQuery1.3尝试了

我正在尝试使用jQuery“CSV”插件,如下所述:

根据文件:

// Convert CSV data into array of arrays
jQuery.csv()("1,2,3\n4,5,6\n7,8,9\n"); // = [ [1,2,3], [4,5,6], [7,8,9] ]
<>但是当我尝试做类似的事情时,它似乎把“\n”当作数组元素中间的另一个字符。< /P> 我做错了什么? 我正在使用jQuery1.4.2和Firefox3.5.10进行测试。我还用jQuery1.3尝试了它,得到了相同的结果

如果插件有问题,那么有人能推荐另一个插件来读取CSV吗? 我的最终目标是将CSV从字符串转换为HTML表;我能找到的唯一一个专门用于此目的的插件要求CSV来自一个文件,这对于我的任务来说是不可取的

下面是我放在一起的一个最小测试页面,它说明了它并没有将行分割成子数组:

<html>
<head>
  <title>CSVtest</title>
  <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
  <script type="text/javascript" src="jquery.csv.js"></script>
  <script type="text/javascript">
     $(document).ready(function() {
      var lines = $.csv()("a,b\nc,d");
      alert(lines[0][1]); // Displays: b 
                          //           c instead of the expected b
     });
  </script>
</head>
<body>
</body>
</html>

CSVtest
$(文档).ready(函数(){
变量行=$.csv()(“a,b\nc,d”);
警报(第[0][1]行];//显示:b
//c而不是预期的b
});

如果您只处理简单数据(无报价),您可以执行以下操作:

function csv(text) {
  var lines = text.split("\n");
  for ( var i = 0; i < lines.length; i++ ) {
    if (!lines[i])
      lines.splice(i, 1);
    else 
      lines[i] = lines[i].split(",");
  }
  return lines;
}
函数csv(文本){
变量行=text.split(“\n”);
对于(变量i=0;i
确保您正在使用插件的。我使用jQuery 1.4.2和(现在已经过时的)CSV插件复制并粘贴了您的示例,效果很好

在IE8、IE6、Google Chrome和Firefox中测试。我还做了测试

alert(lines[1][1]);

果然,警报显示为“d”。

确保使用双引号而不是单引号,因为双引号不能很好地识别换行符。@Steven Xu,JavaScript字符串不是这样。除了明显的区别之外,
。我可以自己编写解析代码,但我无法控制传入的数据流;可以在引号中嵌入逗号,在引号中嵌入引号,或者其他我不想重新发明的标准CSV内容。啊哈。。愚蠢的老我,我相信第一个谷歌匹配将是最新版本。从你的链接下载新版本似乎可以解决这个问题。jquery.csv.min.js的最新版本是@。我知道,我是jquery csv的作者。(:@Evan:awesome,我已经更新了答案以反映当前位置。我刚刚意识到,尽管文件名相同,但它使用的是不同的解析器。您的答案使用jquery csv,但op问题中库的API调用。调用应该是
$.csv.toarray()