使用循环创建一个div

使用循环创建一个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); 
+2

非jQuery方法的+1。 – 2012-07-09 15:51:14

+0

你只能用jQuery制作一个'append' – Esailija 2012-07-09 15:51:24

+1

我同意使用纯JS提高性能,但是在大多数情况下,你建议_is_的方式实际上比在一起串起html要慢。 – 2012-07-09 15:53:09

假设你有以下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