我的目标是遍历ID为ajaxResponse1的表,并将每个COLUMN的值存储在单独的数组中。 valuesArr中的每个条目都是一个包含单个值数组的列。

我尝试使用新的Array而不是新的Object,但似乎仍未收到任何警告到我的屏幕的输出。我是否应该使用.push的某种组合将每个新列值放入适当的数组中?希望很清楚。有任何想法吗?谢谢!

var valuesArr = new Object();

$('#ajaxResponse1 tr').each( function() {
    var colNum = 0;
    $('th, td', this).each( function() {
        valuesArr[colNum] = valuesArr[colNum].push( $(this).html() );
        colNum++;
    });
});

alert(JSON.stringify(valuesArr));

最佳答案

在数组真正存在之前,您不能将某些内容推入数组。

因此,在内部循环的每次迭代中,如果初始数组不存在,则必须创建它:

var valuesArr = [];

$('#ajaxResponse1 tr').each( function() {
    $('th, td', this).each( function(i, el) { // nb: implicit column number
        var html = $(this).html();
        if (i in valuesArr) {
            valuesArr[i].push(html);
        } else {
            valuesArr[i] = [ html ];  // new array with one element
        }
    }
});

09-18 09:03