簡體   English   中英

對於循環內部我的自定義功能不起作用

[英]For loop inside my custom function doesn't work

我正在嘗試創建一個函數,它使用我從用戶那里得到的數字輸入來在容器分區內創建相同數量的除法。但是,無論數字是多少,它總是只創建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;
}

你有分號; for循環之后for這實際上是一個空語句。

這就是for循環沒有按預期工作的原因,你的代碼的其余部分只是創建一個分隔符。

刪除分號; 解決問題。

除了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; line並將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);
  }
}

這是因為你必須聲明變量“i”,試試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM