Javascript 尽管存在终止条件,但为什么无限for循环仍然存在?
此函数用于使用两个输入类型文本值创建动态表 尽管存在Javascript 尽管存在终止条件,但为什么无限for循环仍然存在?,javascript,for-loop,Javascript,For Loop,此函数用于使用两个输入类型文本值创建动态表 尽管存在j小于输入值(col)的条件,但第二个用于无限循环。我尝试使用[row=5 columns=5]的值,但仍然得到无限循环 function addtable(){ var row = document.getElementById('row1').value; var col = document.getElementById('col1').value; if( row === "" || col === ""){a
j
小于输入值(col
)的条件,但第二个用于无限循环。我尝试使用[row=5 columns=5
]的值,但仍然得到无限循环
function addtable(){
var row = document.getElementById('row1').value;
var col = document.getElementById('col1').value;
if( row === "" || col === ""){alert("Please Enter Row & Column values");}
//console.log(row*col);
table = document.createElement('table');
//table.id='Ntables';
console.log(table);
var i = 0;
for( i; i <(row+1) ; i++)
{
var tr = document.createElement('tr');
//tr.id='Ntablerows';
console.log(tr);
table.appendChild(tr);
var j = 0;
for(j; j < (col+1); j++)
{
var td = document.createElement('td');
console.log(td);
tr.appendChild(td);
//td.id='Ntablecols'
var input = document.createElement('input');
input.type = 'text';
//input.id = 'Ntableinput';
td.appendChild(input);
}
}
return (0);
}
函数addtable(){
var row=document.getElementById('row1').value;
var col=document.getElementById('col1')。值;
如果(行==”|列==”){alert(“请输入行和列值”)}
//控制台日志(行*列);
table=document.createElement('table');
//table.id='Ntables';
控制台日志(表);
var i=0;
对于(i;i试试这个:
var row = document.getElementById('row1').value;
var col = document.getElementById('col1').value;
if( row === "" || col === ""){alert("Please Enter Row & Column values");}
row = parseInt( row )
col = parseInt( col )
试试这个:
var row = document.getElementById('row1').value;
var col = document.getElementById('col1').value;
if( row === "" || col === ""){alert("Please Enter Row & Column values");}
row = parseInt( row )
col = parseInt( col )
你是否意识到你的循环将创建例如4行5列,如果行是3,而列是4?我在“代码> TD 的中间看到的是一个<代码> TR < /代码>…因此,在<代码> TR 之间似乎有一个有限数量的<代码> TD < /代码>——这仅仅是你期望的“代码>”的大约10倍。4'+1
是41
不是5
而且警报()不会停止其余代码的执行…@facundo那里应该有一个返回,但我删除了它,我认为我可能会导致问题。最简单的修复方法…var row=+document.getElementById('row1')。value;var col=+document.getElementById('col1')).value;
我说'4'+1
是41
不是5
然后我说了最简单的修复…var row=+document.getElementById('row1')。value;var col=+document.getElementById('col1'))这个值是一个输入值是一个字符串…一个字符串+ 1与一个数字+1不一样,你是否意识到你的循环将创建例如4行5列,如果行是3,而列是4?我在“代码> TD 的中间看到的是一个<代码> TR < /代码>…所以,似乎有有限数量的<代码> TD/介于tr
之间-只是可能有大约10倍于您预期的'4'+1
是41
不是5
也是警报()不会停止其余代码执行…@facundo那里应该有一个返回,但我删除了它,我认为可能是我造成了问题。最简单的修复…var row=+document.getElementById('row1')。value;var col=+document.getElementById('col1')).value;
我说'4'+1
是41
不是5
然后我说了最简单的修复…var row=+document.getElementById('row1')。value;var col=+document.getElementById('col1')).value;
-问题是输入值是一个字符串…字符串+1与数字+1不同,它现在起作用了,它不会将+1连接到变量上。+1现在起作用了,它不会将+1连接到变量上。+1谢谢