我的自定义函数内的for循环不起作用

时间:2019-09-11 15:45:49

标签: javascript html

我正在尝试创建一个函数,该函数使用从用户获得的数字输入来在容器分区内创建相同数量的分区,但是无论数字是多少,它始终仅创建1 div。看来我函数中的for循环正在被避免。

我试图更改功能,检查数字输入是否已定义或未定义。

function createGrid(parameter) {
  for (i = 0; i < parameter * parameter; i++); {
    const div = document.createElement('div');
    newDiv = container.appendChild(div);
    newDiv.setAttribute('class', 'newDiv');
  }
  return newDiv;
}

2 个答案:

答案 0 :(得分:9)

;循环后,您有分号for,这实际上是一个空语句。

这就是for循环无法按预期工作的原因,而您的其余代码仅创建了一个除法器。

删除分号;来解决此问题。

答案 1 :(得分:1)

除了Nikhil的答案外,这是我的写法(不使用全局变量,在大多数情况下,这是一种不好的做法):

function createGrid(parameter) {
  let newDiv;
  for (let i = 0; i < parameter * parameter; i++) {
    newDiv = document.createElement('div');
    newDiv.setAttribute('class', 'newDiv');
    container.appendChild(newDiv);
  }
  return newDiv;
}

如果不需要返回添加的最后一个div,只需删除let newDiv;行并将const关键字放回到for循环的第一行。然后也删除返回值。

function createGrid(parameter) {
  for (let i = 0; i < parameter * parameter; i++) {
    const newDiv = document.createElement('div');
    newDiv.setAttribute('class', 'newDiv');
    container.appendChild(newDiv);
  }
}