2012-07-09 170 views
1

我創建一個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使用循環語句。任何人幫助我..

回答

10

我會建議使用一些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

6

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

4

這裏有一個選項:

for(var i = 0; i <=10; i++) { 
    $('<div id="r'+i+'" class="ansbox"></div>').appendTo("target"); 
} 
+0

@undefined'目標「無論他想放哪。不是特定的標記/變量... – 2012-07-09 15:47:58