我正在摆弄 javascript 以掌握它的窍门。我正在尝试以编程方式构建一个 x x 网格——我最终会尝试成为扫雷器。我有一个函数可以用 x 条目写一行。我有另一个循环函数,调用单行函数 x 次。我的想法是,通过调用行函数 x 次,我将得到一个 x x x 网格。但是在我当前的代码中,循环函数调用单行函数 1 次,我不明白为什么。当我使用警报来计算迭代次数时,循环会触发五次——但在包含 writeOneRow 函数时不会。我在 IE 和 Chrome 中得到了相同的行为。谁能指出我的(可能是傻瓜)错误:
<html>
<body>
<script type="text/JavaScript">
function writeRows(loop) {
for (i=0;i<loop;i++){
writeOneRow(loop); //this is only called once. Why?
}
}
function writeOneRow(num) {
var b = "<Div style='float:left; border-style:solid; margin:10px'> Test </div>"
var string =""
for (i=0;i<num;i++){
string= string+ b ;
}
var line = document.createElement('div');
line.innerHTML = string ;
document.body.appendChild(line);
}
</script>
<a href="#" onclick="javascript:writeRows(5);return false;">InsertRow</a>
</body>
</html>
最佳答案
您的变量 i
是一个全局变量。使用 var
将它们设为本地。
for (var i=0;i<num;i++){
...
for (var i=0;i<num;i++){
关于javascript - 在 for 循环中写入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9995696/