Ваша переменная цикла countrow
в первый раз переходит к значению row
, но затем на следующей итерации внешнего цикла while
она не перезапускается.Таким образом, внутренний while
больше не будет выполняться.
Кроме того, ваши циклы кажутся расположенными в неправильном порядке: вы должны сначала перебирать строки, а затем по каждой строке перебиратьстолбцы.
Исправьте это путем замены циклов и сброса счетчика внутреннего цикла в каждой итерации:
var countrow = 1;
while(countrow<=row){
countcol = 1;
while (countcol<=col){
document.getElementById('count').innerHTML=document.getElementById('count').innerHTML+"(XY)";
countcol++;
}
document.getElementById('count').innerHTML=document.getElementById('count').innerHTML+"<p></p>";
countrow++;
}
Было бы лучше, если бы вы использовали стандартный цикл for
для этого (вместо while
):
for (let countrow = 0; countrow < row; countrow++){
for (let countcol = 0; countcol < col; countcol++){
document.getElementById('count').innerHTML=document.getElementById('count').innerHTML+"(XY)";
}
document.getElementById('count').innerHTML=document.getElementById('count').innerHTML+"<p></p>";
}
Это по крайней мере заставит его работать.Однако я должен добавить, что повторное добавление контента в innerHTML
на самом деле не лучшая практика.
Вот как это можно сделать, всего одним назначением innerHTML
:
document.getElementById('count').innerHTML=
Array.from({length: row}, () => "(XY)".repeat(col)).join("<p></p>");