Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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在列中循环_Javascript_Jquery_Csv - Fatal编程技术网

Javascript 使用jQuery在列中循环

Javascript 使用jQuery在列中循环,javascript,jquery,csv,Javascript,Jquery,Csv,我试图循环浏览csv文件的列和行,但只得到第一行结果 这是我的csv布局,有两列和两行 name total subtitle1 name1 65% name2 65% name3 65% name4 65% total 60% subtitle2 name1 65% name2 65% name3 65% name4 65% total 60% subtitle

我试图循环浏览csv文件的列和行,但只得到第一行结果

这是我的csv布局,有两列和两行

name        total
subtitle1
name1       65%
name2       65%
name3       65%
name4       65%
total       60%
subtitle2
name1       65%
name2       65%
name3       65%
name4       65%
total       60%
subtitle3
name1       65%
name2       65%
name3       65%
name4       65%
total       60%
subtitle4
name1       65%
name2       65%
name3       65%
name4       65%
total       60%
$.ajax({
url:'test.csv',
键入:“获取”,
数据类型:“文本”,
contentType:“文本/csv”,
成功:功能(数据){
var columns=data.split(/\n/);
var column1=列[0]。拆分(/\,/);
var column2=列[1]。拆分(/\,/);
变量数据={};

对于(var i=0;i在您的示例中,您将文件拆分为
,实际上是行而不是列,然后您将第一行和第二行拆分为两列-第一行和第二行各一列

您应该首先按行拆分,然后针对每一行按列拆分:

$.ajax({
    url: 'test.csv',
    type: "GET",
    dataType: "text",
    contentType: "text/csv",
    success: function (data) {
        // Splitting the file into rows
        var rows = data.split(/\n/);
        for (var rowIndex in rows)
        {
            // For every row - split it into columns
            var columns = rows[rowIndex].split(/,/);
            for (var colIndex in columns)
            {
                var colValue = columns[colIndex].trim();
                // here you have the colValue to play with
                console.log(colValue);
            }           
        }
    }
});

您循环了错误的内容。
data.split('\n')
返回一个行数组,但您没有循环该行

循环所有行。在此循环中,以空格分隔行(数据中没有逗号)

var result={};
var rows=data.split('\n');
对于(变量i=0;i1){//跳过字幕行
结果[列[0]]=列[1];
}
}

为什么要发送
contentType:“text/csv”
?这是参数的类型,而不是响应。数据中没有逗号,为什么要拆分?没有在所有行中循环。
列[0]
是第一行,
列[1]
是第二行。您正在忽略所有其他行。我如何浏览所有数据?如果我想访问字幕并以html格式打印,该怎么办?$(“.subtitle”)。每个(函数(索引,值){value.innerHTML=data.colValue;});对不起,我不明白你在找什么,而且这似乎是一个不同的问题。通过你的答案代码,我得到了所有的数据,这很好,现在我知道该如何处理这些数据并将其打印到我的html页面上。例如,如果我想在过去使用的h3标记中只打印字幕。每个函数都像$(“.subtitle”)。每个(函数(索引,值){value.innerHTML=data.colValue;});
var result = {};
var rows = data.split('\n');
for(var i = 0; i < rows.length; i++) {
    var columns = rows[i].split(/\s+/);
    if (columns.length > 1) { // skip the subtitle rows
        result[columns[0]] = columns[1];
    }
}