本文介绍了使用.each从表中创建字符串,如何在每行之后添加换行符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此javascript从表的选定单元格中获取数据:

I am grabbing the data out of selected cells of a table with this javascript:

var cellIndexMapping = { 0: true, 1: true, 3:true, 4:true, 5:true};
var data = [];

$j("#myTable tr").each(function(rowIndex) {
    $j(this).find("td").each(function(cellIndex) {
        if (cellIndexMapping[cellIndex])
            data.push($j(this).text()  );
    });
});

var fullCSV = data.join(", ");
console.log (fullCSV);

这使我所有的表元素都以逗号分隔的数组形式.例如,如果我的桌子是

This gives me all of my table elements in a comma separated array. So for example if my table is

<th>| zero | one | two | three | four | five | </th>
---------------------------------------------
<tr>|  A   |  B  |  C  |  D    |  E   |  F   | </tr>
---------------------------------------------
<tr>|  G   |  H  |  I  |  J    |  K   |  L   | </tr>

我回来了:

A,B,D,E,F,G,H,J,K,L

我需要的是每行之间的换行符"\n".所以我想要的结果看起来像是:

What I need to have is a newline "\n" between each row. So my desired result would look like :

A,B,D,E,F,\n G,H,J,K,L \n

有什么想法吗?

推荐答案

var cellIndexMapping = { 0: true, 1: true, 3:true, 4:true, 5:true},
    data = [],
    finalData = [];

$j("#myTable tr").each(function(rowIndex) {
    data.push([]);

    $j(this).find("td").each(function(cellIndex) {
        if (cellIndexMapping[cellIndex])
            data[rowIndex].push( $j(this).text() );
    });
});

$j.each(data, function(i, e) {
    finalData.push( e.join(',') );
});

finalData.join("\n");


或者,您可以在每个循环中附加\n:

var cellIndexMapping = { 0: true, 1: true, 3:true, 4:true, 5:true},
    finalData = '';

$j("#myTable tr").each(function(rowIndex) {
    var data = [];
    $j(this).find("td").each(function(cellIndex) {
        if (cellIndexMapping[cellIndex])
            data.push( $j(this).text() );
    });

    finalData += data.join(', ') + "\n";
});

查看此小提琴: http://jsfiddle.net/kLsW5/

这篇关于使用.each从表中创建字符串,如何在每行之后添加换行符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 12:26