2014-09-19 61 views
0

有人可以告訴我我做錯了什麼嗎?jQuery - 如何動態打印空表

我認爲這是與添加字符串的東西;

我也試過

var column = $("<td></td>") 

,而不是

var column = $("<td>") 

它總是在HTML相同的結果: 「[對象的對象]」

我究竟做錯了什麼?

謝謝!!

$(function() { 
    createTable(8); 
}); 


function createTableColumn() { 
    var column = $("<td>"); 

    return column; 
} 

function createTableRow(gameBoardSize) { 
    var columns = ""; 
    var row; 

    for(counter = 0; counter < gameBoardSize; counter++) { 
     columns = columns + createTableColumn(); 
    } 

    row = $("<tr>").append(columns); 
    return row; 

} 

function createTable(gameBoardSize) { 

    var rows = ""; 

    for(counter = 0; counter < gameBoardSize; counter++) { 
     rows += createTableRow(gameBoardSize); 
    } 


    $("#gameboard-table").append(rows); 
} 

回答

1

+爲連接字符串,不jQuery的對象。

就直接附加到jQuery的對象:

function createTableRow(gameBoardSize) { 
    var row = $("<tr>"); 
    for(var counter = 0; counter < gameBoardSize; counter++) { 
     row.append(createTableColumn()); 
    } 
    return row; 
} 

function createTable(gameBoardSize) { 
    for(var counter = 0; counter < gameBoardSize; counter++) { 
     $("#gameboard-table").append(createTableRow(gameBoardSize)); 
    } 
} 

確保您使用局部變量循環計數器。否則,環路createTableRow會更新createTable中的計數器,從而導致該環路提前結束。

+0

Thanks!但是,我只用這個代碼獲得了八行的一行,我錯過了什麼? – user3364652 2014-09-19 18:30:18

+0

您需要在'counter'變量上使用'var'關鍵字,因此它對每個函數都是本地的。 – Barmar 2014-09-19 18:31:55

2

您意外執行字符串連接操作+= createTableRow...。改變行的陣列,並且利用推代替

var rows = []; 
for(counter = 0; counter < gameBoardSize; counter++) { 
    rows.push(createTableRow(gameBoardSize)); 
} 
0

$(function(){ 
 
    createTable(8); 
 
    var i=0; 
 
    $('td').each(function(){ 
 
     i++; 
 
    $(this).text(i); 
 
    }); 
 
}); 
 

 
function createTable(number){ 
 
    for(var count = 0;count<number;count++){ 
 
     $('#gameboard-table').append('<tr>'); 
 
     $('tr').append('<td>'); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<table id="gameboard-table"></table>

0

只是字符串連接和一個追加。

function createTable(rowsCount, columnsCount) { 
    var rows = ""; 
    var cell = ""; 
    var table = $("<table />") 
    for (var i = 0; i < columnsCount; i++) { 
     cell += "<td></td>"; 
    } 
    for (var i = 0; i < rowsCount; i++) { 
     rows += "<tr>" + cell + "</tr>"; 
    } 
    table.append(rows); 
     return table; 
}