使用循环创建一个div
问题描述:
我创建一个div和它的css id像这样。使用循环创建一个div
<div id="r1" class="ansbox"></div>
<div id="r2" class="ansbox"></div>
<div id="r3" class="ansbox"></div>
<div id="r4" class="ansbox"></div>
<div id="r5" class="ansbox"></div>
<div id="r6" class="ansbox"></div>
<div id="r7" class="ansbox"></div>
<div id="r8" class="ansbox"></div>
<div id="r9" class="ansbox"></div>
<div id="r10" class="ansbox"></div>
是有办法来创建这个div使用循环语句。任何人帮助我..
答
我会建议使用一些JavaScript(不包括jQuery的)性能:
var toAdd = document.createDocumentFragment();
for(var i=0; i < 11; i++){
var newDiv = document.createElement('div');
newDiv.id = 'r'+i;
newDiv.className = 'ansbox';
toAdd.appendChild(newDiv);
}
document.appendChild(toAdd);
这样你只能制作一个append()
,只需要1次重排,而且你不需要jQuery。
要追加到jQuery选择:
$('sel').append(toAdd);
或DOM元素:
document.getElementById('sel').appendChild(toAdd);
答
假设你有以下div
在那里你会插入新div
S:
<div id="target">
<!-- all divs will append here -->
</div>
的jQuery:
for(var i =1; i<= 10; i++){
$('#target').append($('<div/>', { id: 'r' + i, 'class' : 'ansbox'}))
}
或
for(var i =1; i<= 10; i++){
$('#target').append('<div id="r'+ i +'" class="ansbox"></div>')
}
我会去第一种方法。
相关裁判:
+0
我喜欢的对象直译的方法来属性赋值,它更容易维护 – 2012-07-09 15:47:58
答
这里有一个选项:
for(var i = 0; i <=10; i++) {
$('<div id="r'+i+'" class="ansbox"></div>').appendTo("target");
}
+0
@undefined'目标“无论他想放哪。不是特定的标记/变量... – 2012-07-09 15:47:58
非jQuery方法的+1。 – 2012-07-09 15:51:14
你只能用jQuery制作一个'append' – Esailija 2012-07-09 15:51:24
我同意使用纯JS提高性能,但是在大多数情况下,你建议_is_的方式实际上比在一起串起html要慢。 – 2012-07-09 15:53:09