2017-01-29 149 views
1

我試圖在二維數組中存儲一個表,以便數組中的每個項目都是包含一行中所有單元的數組。二維數組中的存儲表jquery

我使用:

var tRow = []; 
var tRows = []; 
tab = document.getElementById('table'); 

for(var r = 0 ; r < tab.rows.length ; r++) { 
    for (var c=0; c < tab.rows[r].cells.length; c++){ 
     tRow[c] = tab.rows[r].cells[c].innerHTML;      
    } 

    tRows.push(tRow); 
} 

這只是給了我20個名額,而不是每個項目在表中的各指數中的最後一行項目。因此,此表:

<tr> 
<td>Row 1 cell 1</td> 
<td>Row 1 cell 2</td> 
<td>Row 1 cell 3</td> 
<td>Row 1 cell 4</td> 
</tr> 
<tr> 
<td>Row 2 cell 1</td> 
<td>Row 2 cell 2</td> 
<td>Row 2 cell 3</td> 
<td>Row 2 cell 4</td> 
</tr> 

tRows將是:替代

tRows =[ [Row 2 cell 1,Row 2 cell 2,Row 2 cell 3,Row 2 cell 4] , [Row 2 cell 1,Row 2 cell 2,Row 2 cell 3,Row 2 cell 4] ] 

tRows =[ [Row 1 cell 1,Row 1 cell 2,Row 1 cell 3,Row 1 cell 4] , [Row 2 cell 1,Row 2 cell 2,Row 2 cell 3,Row 2 cell 4] ] 

我不知道我做錯了。請幫忙。

回答

0

您可以使用兩個map()函數執行此操作。

var tRows = $('tr').map(function() { 
 
    return [$(this).find('td').map(function() { 
 
    return $(this).text() 
 
    }).get()] 
 
}).get() 
 

 
console.log(tRows)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td>Row 1 cell 1</td> 
 
    <td>Row 1 cell 2</td> 
 
    <td>Row 1 cell 3</td> 
 
    <td>Row 1 cell 4</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Row 2 cell 1</td> 
 
    <td>Row 2 cell 2</td> 
 
    <td>Row 2 cell 3</td> 
 
    <td>Row 2 cell 4</td> 
 
    </tr> 
 
</table>

0

你的問題是,你需要一個新的tRow陣列外循環的每個迭代。

只是移動var tRow = [];該行循環

var tRows = []; 
 
tab = document.getElementById('table'); 
 

 
for (var r = 0; r < tab.rows.length; r++) { 
 
    var tRow = [];// start new row array 
 
    for (var c = 0; c < tab.rows[r].cells.length; c++) { 
 
    tRow[c] = tab.rows[r].cells[c].innerHTML;  
 
    } 
 
    tRows.push(tRow); 
 
} 
 

 
console.log(tRows);
<table id="table"> 
 
    <tr> 
 
    <td>Row 1 cell 1</td> 
 
    <td>Row 1 cell 2</td> 
 
    <td>Row 1 cell 3</td> 
 
    <td>Row 1 cell 4</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Row 2 cell 1</td> 
 
    <td>Row 2 cell 2</td> 
 
    <td>Row 2 cell 3</td> 
 
    <td>Row 2 cell 4</td> 
 
    </tr> 
 
</table>

相關問題