0

だから私は「カード」オブジェクトで満たされた「デッキ」配列を作成しようとしています。「カード」オブジェクトには、属性 .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、米国の州のリストを含むテーブルをクリックすると、すべての 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 に答える