Я создаю скрипт, который принимает два входных размеры, ширину и высоту, и создает масштабируется сетка, которая является представителем сколько блоков может поместиться в коробке с заданными размерами с помощью следующей функции:JavaScript уничтожает всех детей после добавления перерыва?
function makeRow() {
for (var i = 1; i <= blocksTall; i++) {
var mb = document.createElement("div");
mb.setAttribute("class", "matrix-block mb-off");
mb.setAttribute("onClick", "select_mb('" + j + "," + i + "');");
placeBlocks.appendChild(mb);
if (i = blocksWide) {
placeBlocks.appendChild('br');
}
}
}
Эта функция отлично работает, чтобы отобразить первую строку блоков, а затем вставляет тэг break после того, как строка закончила визуализацию, что именно то, что я хочу сделать. Проблема в том, что мне нужно сгенерировать еще 17 строк с одинаковым количеством блоков, каждый из которых находится под предыдущей строкой, поэтому я впервые подумал, что я просто обернут еще один цикл вокруг этого первого цикла и, поскольку есть разрыв там, она будет оказывать новую строку ниже предыдущего:
for (var j = 1; j <= blocksTall; j++) { // Vertical for loop.
for (var i = 1; i <= blocksWide; i++) { // Horizontal for loop.
var mb = document.createElement("div");
//mb.setAttribute("id", "matblock-" + i + "-" + j);
mb.setAttribute("class", "matrix-block mb-off");
mb.setAttribute("onClick", "select_mb('" + i + "," + j + "');");
placeBlocks.appendChild(mb);
}
if (j = blocksWide) {
placeBlocks.appendChild(brk);
}
}
Где blocksWide
= 17. Here is a fiddle с полным сценарием. Когда я регистрирую значение для j в консоли, это фактически увеличивает (что говорит мне, что цикл for работает). То, что, кажется, происходит, состоит в том, что это почему-то рендеринг строки, а затем либо рендеринг новой строки поверх нее (кажется маловероятным, поскольку тэг break отображается после завершения каждой строки), либо по какой-то причине дети каждый раз, когда запускается новый цикл «горизонтальный».
Кто-нибудь знает, почему это может произойти, и как правильно получить каждую строку, добавляемую в последнюю строку, чтобы она создавала сетку из блоков вместо одной строки?
Заранее благодарю за любую помощь.
Что такое 17 для? Infinity/17; o) – MaxZoom