为了账号安全,请及时绑定邮箱和手机立即绑定

for循环只有最后一个结果

for循环只有最后一个结果

森林海 2019-02-12 08:27:43
window.onload = function() {    //var boxWidth = document.getElementById("pic_box").offsetWidth;    //var boxHeight = document.getElementById("pic_box").offsetHeight;    var picBox = document.getElementById("pic_box");    var ul = document.getElementById("pic_box_ul");    var nodeLi = document.createElement("li");    for (i=0;i<=100;i++){        liTop = [i]*10;        liLeft = [i]*10;        ul.appendChild(nodeLi);        nodeLi.setAttribute("style","top:"+liTop+"px;height:"+liLeft+"px");    }}不是应该输出100个li吗?怎么只有一个呢自己想了一下是不是每一次for都覆盖了上一次的结果,所以只有一个,那要怎么处理才不会覆盖呢
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

这个代码很有问题啊,先不说能不能跑得通,先是变量定义问题:i也没定义,liTop,liLeft也没定义;

另外没有100个li标签的原因也是没理解循环的含义,应该把createElement("li")放到for循环里


window.onload = function () {

        //var boxWidth = document.getElementById("pic_box").offsetWidth;

        //var boxHeight = document.getElementById("pic_box").offsetHeight;

        var picBox = document.getElementById("pic_box");

        var ul = document.getElementById("pic_box_ul");

        for (var i = 0; i <= 100; i++) {

          var nodeLi = document.createElement("li");

          var liTop = [i] * 10;

          var liLeft = [i] * 10;

          ul.appendChild(nodeLi);

          nodeLi.setAttribute("style", "top:" + liTop + "px;height:" + liLeft + "px");

        }

      }


查看完整回答
反对 回复 2019-02-12
  • 1 回答
  • 0 关注
  • 1262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信