javascript - For 循环仅循环 1 次 - JavaScript

标签 javascript

嗨,我正在尝试创建一个 for 循环,它会根据有多少图像自动添加“点”,我使用 myArrImg.length 但它只输出一个带有一类点的 li 一次,即使它应该这样做四次?谁能帮助我:)

var myArrImg = ['img/erftdgdf33.jpg','img/iajdi89.jpg','img/isdkfj01.jpg','img/wergf43.jpg'];

function dotsAuto(){
  var test = document.getElementById('test');
  var li = document.createElement('li');
  li.className = 'dots';

  for (i = 0; i < myArrImg.length; i++) {
    test.appendChild(li);
  }
}
dotsAuto();

最佳答案

你的问题不是你想的那样。循环运行了正确的次数,但它没有按照您的预期进行。

问题是您只创建了一个 li 元素。然后,您可以重复插入同一元素。所以浏览器认为你正在这样做:

Create an li element. Give it a className. Now, start looping through the myArrImg array. On the first time, insert that li element. On the second time, insert that li element. On the third time, insert that li element. And so on.

每次都需要创建新的 li 元素,因为任何元素在文档中只能存在一次。本质上,您不断从文档中删除元素并将其放回同一位置。要每次创建新元素,请在循环中创建 li:

var li;

for (i = 0; i < myArrImg.length; i++) {
  li = document.createElement('li');
  li.className = 'dots';
  test.appendChild(li);
}

关于javascript - For 循环仅循环 1 次 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40911881/

相关文章:

javascript - 错误: Cannot read property '' of undefined when I get return off subscribe

javascript - 缓存来自 API 查询的信息 - 限制为每 10 秒 10 条

javascript - Object.assign 覆盖原始引用?

c# - jquery 中出现非法调用错误

javascript - 使用 PHP 从 JSON 检索数组

javascript - 在 JavaScript 中使用常量有什么意义?

javascript - 将内容从网站剥离到我的网站

javascript - 如何在日期选择器中将日期格式 (MM/DD/YY) 更改为 (YYYY-MM-DD)

javascript - onPress 错误 "is not a function"和 "is undefined"

javascript - jqPlot mouseOver 在饼图上