我已经通过我的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();
}
}
答案 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)
答案 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);
}