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谢谢