在javascript或jquery中将html元素添加到动态创建的div中

时间:2011-02-04 10:39:15

标签: javascript jquery

我已经通过我的asp.net mvc应用程序中的javascript创建了动态div。这是在for循环中创建的,我将每个id保留为索引值:

 for (j = 1; j <= count; j++) {
    $("<div id=" + j + "> Step " + j +  "</div>").
        hide().appendTo("#parentDiv").fadeIn();
 }

现在,我想在同一个for循环中向这些div添加新元素。但是当我要附加它时,我没有得到当前的索引div,所以我可以追加它。简而言之,我想动态地在动态创建的div元素中循环渲染html元素。我该如何实现这一目标? 的编辑: 看到真实的情景是这样的。如何实现?

 for (j = 1; j <= count; j++) {
    $("<div id=" + j + "> Step " + j +  "</div>").hide().appendTo("#parentDiv").fadeIn();
                    for (i = 1; i <= count; i++) {
                          $("<div id=" + i + "> Data of column " + i +  "</div>").
                         hide().appendTo("#"+j).fadeIn();
                        }

 }

4 个答案:

答案 0 :(得分:2)

首先,您不应仅为您的ID分配号码,有效的ID以字母字符开头。 您应该能够在脚本中稍后使用各自的ID引用这些新对象。你的其余问题很神秘......

如果您尝试将事件附加到这些,请小心,您必须使用live()方法。经典的bind()或其快捷方式click(),hover()等不适用于动态添加的元素。

HTH

答案 1 :(得分:2)

<script src="jquery.js"></script>
<style>
#hello{
    height: 100px;
    width: 500px; 
    background: blue;
}

.small{
    margin-top: 10px;
    height: 60px;
    width: 500px;
    background: red;
}

.smallest{

    margin-top: 10px;
    height: 10px;
    width: 500px;
    background: green;

}
</style>
<script>
$(function(){
for (j = 1; j <= 5; j++) {

    var div = $("<div></div>").attr({"id": "div"+j , 'class': 'small'}).appendTo($('#hello'));
    //create some variable and add to var div
    $('<div></div>').attr({"class": 'smallest'}).appendTo(div);
    $('<div></div>').attr({"class": 'smallest'}).appendTo(div);
    $('<div></div>').attr({"class": 'smallest'}).appendTo(div);
    }




});
</script>
<div id="hello"></div>

答案 2 :(得分:1)

你可能想看看这个: http://api.jquery.com/live/

答案 3 :(得分:0)

这会奏效。

var count = 10
for (j = 1; j <= count; j++) {
    $("<div id=a" + j + "> Step " + j + "</div>").hide().appendTo("#parentDiv").fadeIn();
    $('#a' + j).html("test" + j);
}