Я заметил несколько вещей в вашем коде, и это может или не быть полезным.
Во-первых, вы возвращаете return tmp_wall
, из-за чего ваш код не запускается после этой точки.
Второй момент заключается в том, что внутри вашего кода есть замыкание, и вы должны вызывать его для правильного использования.
Третий момент: вы не пытаетесь добавить созданный вами элемент tmp_wal.
Вы не можете добавлять один и тот же элемент в dom несколько раз и обойти его можно было бы с помощью cloneNode () или вместо этого создавать новые элементы для каждой итерации в for ().
Закрытие drawWorld
также отсутствует некоторые закрывающие теги.
Я бы подошел к этому немного по-другому, используя только JS. Однако я решил изменить как можно меньше, чтобы получить нужную вам сетку.
Я бы сделал следующее:
var wall = function() {
// var tmp_wall = document.createElement("div");
// tmp_wall.style.width = 50 + "px";
// tmp_wall.style.height = 50 + "px";
// tmp_wall.style.backgroundColor = "green";
// tmp_wall.className = "wall";
var world = [
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1],
[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1]
];
const gWorldElement = document.getElementById("g_world");
function drawWorldContainer() {
for (let i = 0; i < world.length; i++) {
const newElementI = document.createElement("div");
gWorldElement.appendChild(newElementI);
for (let j = 0; j < world[i].length; j++) {
const newElementJ = document.createElement("div");
gWorldElement.children[i].appendChild(newElementJ);
newElementJ.innerText = world[i][j];
}
}
}
drawWorldContainer();
};
wall();
Если вы установите элемент g_world
как flex , в результате у вас будет сетка с контейнерами div и другими элементами div, содержащими значение.
Затем вы можете создать еще одну проверку, такую как if(world[i][j] === 1)
, которая проверяет значение и соответственно добавить classNames или изменить тег стиля элемента.
Надеюсь, я не сильно изменил ваш код, и вы все равно сможете разработать свое решение, если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать.