【问题标题】:How do you append to a div name that is being dynamically created in a for loop with jquery?如何附加到使用 jquery 在 for 循环中动态创建的 div 名称?
【发布时间】:2013-04-27 09:26:49
【问题描述】:

我正在尝试做这样的事情:

        var size = skillsArray.length;
        for (i = 0; i < size; i++) {
            var divString = "'#Skill" + i +"'";
            $(divString).append(skillsArray[i]);
        }

为了开始我的原型,skillsArray 有 5 个值。所以我的javascript是这样的:

        $('#Skill0').append(skillsArray[0]);
        $('#Skill1').append(skillsArray[1]);
        $('#Skill2').append(skillsArray[2]);
        $('#Skill3').append(skillsArray[3]);
        $('#Skill4').append(skillsArray[4]);

我的 html 是这样的:

        <div id='Skill0'></div>
        <div id='Skill1'></div>
        <div id='Skill2'></div>
        <div id='Skill3'></div>
        <div id='Skill4'></div>

一切正常。

现在我想处理更大的动态大小的数组,我想使用循环。

所以我的第一步是在 javascript 循环中写出 html div 标签,这很有效:

 for (i=0; i<size; i++)
 {
   html += "<div id='Skill" + i + "'></div>";
 }

在我尝试第 2 步之前,这就是我的问题所在,它确实显示前 5 个技能很好,之后的每个技能都是空白的。 (意料之中,因为我还没有更新我的 javascript 来对每个 div 进行追加,它仍然只做了前 5 个。)

所以,我已准备好尝试第 2 步并使用 for 循环进行追加。我怎样才能做到这一点?我粘贴在最顶部的代码根本没有用任何东西填充每个 div。

提前感谢您的帮助! -冬青

【问题讨论】:

  • skillsArray 里面有什么?
  • 这里你正在创建一个html 变量,它被添加到dom中
  • 是否有一个包含&lt;div id='Skill0'&gt;&lt;/div&gt; 之类的容器元素
  • 为什么要多引号... var divString = "#Skill" + i
  • 它只是字符串,是的,我将 html var 添加到 DOM,但由于该部分从未损坏,因此我没有继续使用该 sn-p。谢谢,伙计们!

标签: javascript jquery html for-loop append


【解决方案1】:

去掉选择器字符串中的单引号:

var divString = "#Skill" + i;

【讨论】:

    【解决方案2】:

    尝试删除此行中的单引号:var divString = "'#Skill" + i +"'";,如下所示:

    var divString = "#Skill" + i;
    

    【讨论】:

    • 非常感谢您,日光。我以为我已经尝试过了,但我一定没有。我被困在最长的事情最终是最小的错误! :)
    • 没问题..我也犯过这些错误..:)
    【解决方案3】:

    你可以试试这个

    $("div[id^='Skill']").each(function(i) {
        $(this).append(skillsArray[i]);
    });
    

    【讨论】:

      【解决方案4】:

      在同一个循环中做所有事情:

      var size = skillsArray.length;
      for (i = 0; i < size; i++) {
          // create a div
          var $elem = $("<div id='Skill" + i + "'></div>");
      
          // append the skills to div
          $elem.append(skillsArray[i]);
      
          // append the div to body (or wherever)
          $('body').append($elem);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-20
        • 2020-05-24
        • 1970-01-01
        • 2021-01-23
        • 2012-05-16
        • 2022-12-12
        • 1970-01-01
        • 2014-10-20
        相关资源
        最近更新 更多