javascript - 在 for 循环中写入多行

标签 javascript

我正在摆弄 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/

相关文章:

javascript - 如何检测动态添加的 css 类

javascript - 以动态/编程方式将项目添加到 jQuery-ui 可排序

php - PHP的Javascript函数引发 “Illegally Formed XML Syntax”错误

javascript - 如何在上课前打开div在另一个类后关闭div

javascript - AJAX POST 无法在 CODEIGNITER 中加载 div View

javascript - 在Chrome native 消息传递中: how long is the native app instance object lifetime?

javascript - 为网络本地存储数据的最佳实践

javascript - 组件未通过 mapStateToProps 从 Redux 商店获取 Prop

javascript - 在不知道宽度的情况下将元素置于其上的居中

javascript - Sharepoint-Object # 在 Chrome 中没有方法 'showModalDialog'