2013-12-10 2 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 paif каждого номера) и вы хотите поместить один номер в каждую ячейку, но мне не удается оборачивать голову тем, как писать код для него.Добавление элементов массива в ячейки таблицы

+0

Я считаю, что проблема не увеличивающиеся 'k' правильно. Попробуйте 'cell.innerHTML = myArray [i * 4 + j];' вместо 'cell.appendChild (...)'. Конечно, предполагается, что у вас есть 16 значений в 'myArray'. – 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); 

Что вы прилагая тд, прежде чем присваивать значения в нем. попробуйте добавить после создания текстового узла.

Смежные вопросы