【问题标题】:For loop to fill my div box'sFor循环填充我的div框
【发布时间】:2014-03-03 21:21:09
【问题描述】:

对为什么这没有用 1-28 填充我的 div 框感到困惑,请帮忙。

$(document).ready(function () {
    var $newdiv = $('div.box').text(i);
    for (var i =2; i <28; i++) {
        $newdiv = $('div.box').text(i);
        $('div.box').append($newdiv);
    }
});

【问题讨论】:

  • 你在哪里声明 $newdiv 你有 .text(i) 在这种情况下我是什么?另外请创建一个小提琴,不要在 $ 中使用变量名。
  • @radubogdan 我没有看到将 $whatever 用于变量名的问题。我通常在缓存 jquery 元素时这样做。
  • 真正的问题是什么?你得到什么结果?通过查看您的代码,每次您通过循环时,都会将所有 div.box 设置为 i 值
  • @radubogdan 实际上,在存储 jQuery 对象以供以后使用时,通常使用以$ 开头的变量。它有助于识别哪些变量包含 jQuery 对象,哪些不包含。这绝不是强制性的,但这是一种相当普遍的做法。它也没有错。
  • 用$没问题,但是风格不好。你也没有解释你想做什么。但ofc这是一个品味问题。编辑:@War10ck:我知道。我通常不会弄乱他们

标签: javascript function loops for-loop


【解决方案1】:

你需要改变你的条件。现在,您从i=2 开始,到i=27 结束。更改您的 for 循环以执行此操作:

for (var i=1; i<=28; i++) {
    // ...
}

【讨论】:

    【解决方案2】:

    JavaScript 对象通过引用传递。因此,您正在更改原始 DOM 对象的文本,而不是创建一个新对象。请尝试以下操作:

    // Shorthand for $(document).ready(function () { ... });
    $(function () {
        // Create an array to store your new elements temporarily.
        var newDivs = [];
        for(var i = 1; i < 29; i++) {
            // Create your new <div> elements and push them to
            // your array. Using the following syntax for
            // creating elements allows jQuery to use
            // document.createElement internally.
            newDivs.push($('<div />', { "class": "box", "text": i }));
        }
        // Once all elements are created, append the entire
        // group to the $('div.box') element.
        $('div.box').append(newDivs);
    });
    

    【讨论】:

    • 可行,但所有数字都堆叠在一起?
    【解决方案3】:

    试试这个。它已经过测试了。

        <pre>
    
    <html>
    <head> 
    <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> 
     <script>      
       $(document).ready(function () {
         for (var i=1; i <28; i++) {
          $('#box').append(i+" ");
          }
        });
     </script>
    </head>
    <body>
    <style type="text/css">
    #box{
        border: 1px solid red;
        height: 100px;
        width: 100px;
    
    }
    </style>
     <div id="box">
     </div>
    </body>
    </html>
    
    
    <code>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      相关资源
      最近更新 更多