0

所以我试图创建一个充满“卡片”对象的“甲板”数组。'card' 对象需要 .front 和 .back 属性。

.front 需要包含每一行的单元格,也就是第一列。.back 需要包含每一行的其余信息。

'tr' = 行

'tr td' = 单元格

rowArray = []
deck = []
$('tbody').click(function(){
    var rows = $(this).find('tr');
    var cells  = $(this).find('tr td');
    for (w = 0; w<cells.length; w++){
        if (cells[w].innerText === undefined){
        }
        else{
            rowArray.push(cells[w].innerText)
        }
        };
    for (var i =0; i < rows.length; i++){
        var card = {}
        var info =$(row[i]).find('td')
        var cardFront = info[0]
        card.front = $(cardFront).text()  
        for (var x=0; x< cells.length; x ++ ){
        if (cells[x].innerText === undefined){ // takes out all undefined cells
            }
        else{
            if (x % ((rows.length) / cells.length) !== 0){ // filters out the first column, so no repeat information
                card.back = cells[x].innerText; 
            }
            else{
            }
        }
     };
    deck.push(card);
    };
});

我遇到的问题是所有卡片对象的 .back 是最后一个单元格。

前任。http://en.wikipedia.org/wiki/List_of_U.S._states,当我单击带有 USstates 列表的表格时,所有 card.back === '怀俄明领地'

因此,我希望 StackOverflow 可以帮助我找到的解决方案是:在相应的卡片上从每一行获取信息。

4

2 回答 2

1

当您遍历单元格 ( for (var x=0; x< cells.length; x ++ )) 时,您将遍历表中的每个单元格,其中最后一个是怀俄明州。相反,您希望迭代info哪些只包含给定行中的单元格。

rowArray = []
deck = []

$('tbody').click(function(){
    var rows = $(this).find('tr');
    var cells  = $(this).find('tr td');
    for (w = 0; w<cells.length; w++){
        if (cells[w].innerText === undefined){
        }
        else{
            rowArray.push(cells[w].innerText)
        }
        };
    for (var i =0; i < rows.length; i++){
        var card = {}
        var info =$(rows[i]).find('td')
        var cardFront = info[0]
        card.front = $(cardFront).text()

        // Remove first cell from info
        info = info.slice(1);
        card.back = info.map(function(i,e) { return e.innerText }).toArray();

        // Move this line inside the rows loop
        deck.push(card);
     }
});
于 2013-06-22T20:46:26.520 回答
0

您在每一行上创建一张新卡片,遍历单元格并将 card.back 设置为单元格的值。当然,您的卡始终具有最后一个单元格的值。

解决方案:尝试将 card = {} 移动到您的单元格循环中,以便为每个单元格而不是每一行创建一张新卡片

于 2013-06-22T20:06:35.063 回答