jquery遍历表行,获取并将数据存储在变量中,并将所有数据作为数组输出

时间:2015-01-28 13:21:23

标签: jquery arrays loops html-table

我正在尝试构建jQuery函数,但我还没有走得太远。

我试图遍历每个表行,获取数据并将每行值编译成不可用的数组。然后将数组输出到textarea。

我的想法是,我可以将数组复制并粘贴到一个新的文本框中,然后开始一个新的挑战,使一个jQuery函数将该数组数据输回到我的html表中。

如果您能想出更好的方式来描述我的问题,请随意重命名此问题。

这是我有多远......

请参阅小提琴:http://jsfiddle.net/6cqycyn6/7/


var data = null,
    $results = $('.acf-field[data-name="report_results"] .acf-repeater TABLE TR.acf-row');

$("A#data_get").click(function () {

    $results.each(function () {

        var data = array(
            row = $('.order').html();
            report_results_position = $('.acf-field[data-name="report_results_position"]').find('INPUT[type="number"]').val();    
            report_results_rider = $('.acf-field[data-name="report_results_rider"]').find("SELECT OPTION:selected").text();
            report_results_L1 = $('.acf-field[data-name="report_results_L1"]').find('INPUT[type="text"]').val();
            report_results_L2 = $('.acf-field[data-name="report_results_L2"]').find('INPUT[type="text"]').val();
            report_results_L3 = $('.acf-field[data-name="report_results_L3"]').find('INPUT[type="text"]').val();
            report_results_T3 = $('.acf-field[data-name="report_results_T3"]').find('INPUT[type="text"]').val();
            report_results_time = $('.acf-field[data-name="report_results_time"]').find('INPUT[type="text"]').val();
            report_dnf_dsq = $('.acf-field[data-name="report_dnf_dsq"]')".find('input[type='checkbox']").val();
        );

    });

    $("TEXTAREA.clipboard").html(data);

});

我甚至无法在文本框中显示数组。

从我的代码看,我猜这个数组无论如何都只是最后一行。如何以可用的键控格式存储数组中的每一行。

任何jquery高手帮忙都会非常感谢你。


请参阅小提琴:http://jsfiddle.net/6cqycyn6/7/

1 个答案:

答案 0 :(得分:2)

首先,尝试清理标记,简化选择器并修复语法错误。检查控制台是否显示那里显示的错误。这会让事情变得更容易。

另外,您必须在$(this) - 函数中添加$.each()以仅引用一行和实际行,否则每个数据都会被存储。

row = $(this).find('.order').html();

要启动空数组写:

var data = [];

要将数据存储在数组中,您可以尝试分别使用对象:

data.push(
        {
            'row' : row,
            'report_results_position' : report_results_position,
            'report_results_rider': report_results_rider,
            'report_results_L1' : report_results_L1,
            'report_results_L2' : report_results_L2,
            'report_results_L3' : report_results_L3,
            'report_results_T3': report_results_T3, 
            'report_results_time' : report_results_time,
            'report_dnf_dsq' : report_dnf_dsq
        }
    );

尝试console.log(data);检查您的数据阵列。

要访问您的数据,请使用:

data[index].key

index =数组的索引(从0开始)

key =数据数组中对象键的名称

E.g data[0].report_results_rider将输出" Marc Marquez"

如果要在textarea中显示数组,可以使用:

html_data = JSON.stringify(data);
$("textarea.clipboard").html(html_data);

Demo

<强>参考

.push()

.stringify()