2013-12-10 238 views
0
// Creates a table for my game. 
var table = document.createElement("table"); 
table.border = 1; 

// Generates a table with 4 rows and 4 columns 
for (var i = 0; i < 4; ++i) { 
    var row = document.createElement("tr"); 
    table.appendChild(row); 

    // Creates a cell with the respective number 
    for (var j = 0; j < 4; ++j) { 
     var cell = document.createElement("td"); 
     row.appendChild(cell); 
     cell.appendChild(document.createTextNode(myArray)); 
    }; 
}; 

innerDiv.appendChild(table); 

我在純Javascript中製作了一個內存遊戲,這是我用來生成4x4單元格的遊戲板的代碼。我有一個由16個隨機生成的數字組成的數組(每個數字1個數組),並且希望在每個單元格中放置一個數字,但是我無法圍繞如何爲其編寫代碼。向表單元添加數組元素

+0

我相信這個問題是不是遞增'k'正確。嘗試'cell.innerHTML = myArray [i * 4 + j];'而不是'cell.appendChild(...)'。當然,假設你在'myArray'中有16個值。 – techfoobar

+0

像魅力一樣工作,謝謝。 – Lemonmuncher

回答

0

更換

cell.appendChild(document.createTextNode(myArray[k])); 

cell.appendChild(document.createTextNode(i*4+(j+1))); 
0

我想你需要將文本節點添加到單元格元素,然後再將其放入單元格中。

// Skapar en cell med respektive siffra. 
    for (var j = 0; j < 4; ++j) { 
     var cell = document.createElement("td"); 
     cell.appendChild(document.createTextNode(myArray[k])); //// switched line 
     row.appendChild(cell); //// switched line 
    }; 
0

嘗試如下:

// Creates a table for my game. 
var table = document.createElement("table"); 
table.border = 1; 

// Generates a table with 4 rows and 4 columns 
for (var i = 0; i < 4; ++i) { 
    var row = document.createElement("tr"); 
    table.appendChild(row); 

    // Skapar en cell med respektive siffra. 
    for (var j = 0; j < 4; ++j) { 
     var cell = document.createElement("td");  
     cell.appendChild(document.createTextNode(myArray[k])); 
     row.appendChild(cell); 
    }; 
}; 

innerDiv.appendChild(table); 

您在它賦值之前你追加TD。嘗試創建文本節點後添加。