0

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

        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。

在此先感谢您的帮助!-冬青

4

4 回答 4

3

尝试删除这一行中的单引号:var divString = "'#Skill" + i +"'";像这样:

var divString = "#Skill" + i;
于 2013-05-03T03:28:08.043 回答
1

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

var divString = "#Skill" + i;
于 2013-05-03T03:27:55.930 回答
0

你可以试试这个

$("div[id^='Skill']").each(function(i) {
    $(this).append(skillsArray[i]);
});
于 2013-05-03T03:30:07.673 回答
0

在同一个循环中执行所有操作:

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);
}
于 2013-05-03T03:31:19.370 回答