需要帮助使用' for循环'从表中提取数据

时间:2014-10-07 12:02:20

标签: javascript jquery loops for-loop extract

只是想知道是否有人可以帮助我。

我创建了一个表,并使用Javascript我提取所有数据并将其放入div中。

$(function () {
    $('table').each(function () {
        var output = "",
            table = $(this),
            rowHead = table.find('tbody tr th'),
            rowSubject = table.find('thead tr th:not(:first-child)'),
            rowContent = table.find('tbody tr td'),
            copy = table.clone();

        output += '<div class="mobiled-table">';
        for (i = 0; i < rowHead.length; i++) {
            output += '<div class="head">' + $(rowHead[i]).html() + '</div>';
            for (j = 0; j < rowSubject.length; j++) {
                output += '<div class="subject">' + $(rowSubject[j]).html() + '</div>';
                output += '<div class="content">' + $(rowContent[i]).html() + '</div>';
            }
        }
        output += '</div>';
        $('table').append(output);
    });
});

除了.content类无法正常工作外,一切正常。我相信我使用错误的'for循环'或者我需要创建另一个'for循环'。请看看我的codepen,你会看到我的问题

http://codepen.io/anon/pen/JrKBf

我希望有人可以提供帮助。

2 个答案:

答案 0 :(得分:0)

因为rowContent包含单元格矩阵但是作为一维数组,您必须将(i,j)转换为rowContent的有效索引(i * 4) + j

rowContent[i]

应替换为:

rowContent[(i*4) + j]

答案 1 :(得分:0)

以更简单的方式,您可以这样做,

var container=$("#container");
$("table tr:not(:first)").each(function() {
    var heading = $(this).find("th").html();
    container.append('<div class="subject">' + heading + '</div>');
    $(this).find("td").each(function(i) {
        container.append('<div class="subject">' + $("table th").eq($(this).index()).html() + '</div>');
        container.append('<div class="content">' + $(this).html() + '</div>');
    });
});

Fiddle