2013-05-08 53 views
0

我想在for循環中將每3條記錄附加到一個div。 numberList是動態的,所以我們不確定確切的長度。要求是選擇3個記錄並將其包裝在div中。 例如,如果numberList.length是7,那麼我們應該有3個div。前2格將包含3條記錄,最後一格將有一條記錄。for循環並將結果集添加到div

如何去做這件事?

for (var j = 0; j < numberList.length; j++) { 
number = numberList[j].Number; 
} 

每3次記錄後,取結果,並在一個DIV

+0

那麼你是如何獲得在這種情況下號碼列表?你有沒有嘗試過任何東西?如果是,請不要猶豫,在這裏發佈? – 2013-05-08 08:14:22

回答

0

嘗試這樣:

var numberList = [ 123, 234, 345, 456, 567, 678, 789 ]; // sample data 

var frag = document.createDocumentFragment(), 
    div; 

for (var j = 0; j < numberList.length; j++) { 
    if (!(j % 3)) { 
     div = document.createElement('div'); 
     frag.appendChild(div); 
    } 
    div.appendChild(document.createTextNode(' ' + numberList[j])); 
} 

document.body.appendChild(frag); 

這裏舉例:http://jsfiddle.net/vtQtr/


這其中大部分應該是相當熟悉;如果您不熟悉它,您可能需要閱讀remainder operator%(有時稱爲「mod」或「modulo」)。

我們還使用文檔片段來避免重複修改文檔。首先,我們將東西插入到片段中,然後將整個片段一次插入到文檔中。

在這個例子中,我用一個空格分隔了每個div中的數字,但是您可以調整它以使用任何您喜歡的東西。

+0

感謝您的輸入!它有很大幫助! :) – Kalish 2013-05-08 09:13:13

+0

@Kalish,沒問題,很高興它有幫助。 :) – 2013-05-08 09:14:35

1

你需要的東西這個追加?

for (var j = 0; j < numberList.length; j++) { 
    if ((j+1)%3) { 
    // create new div 
    } else { 
    // add record to the div 
    } 
} 
1
<html> 
<head> 
<title>test</title> 
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script src="http://code.jquery.com/jquery-migrate-1.1.1.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var arr = ["one", "two", "three", "four", "five", "six", "seven"]; 
    var j = 0; 
    var str = ""; 
    var master = $("#masterDiv"); 
    for (i = 0; i < arr.length; i++) { 
     str += arr[i]; 
     j++; 
     if (j >= 3) { 
      master.append($('<div/>', { html: str })); 
      str = ""; 
      j = 0; 
     } 
    } 
    master.append($('<div/>', { html: str })); 

}); 
</script> 
</head> 
<body> 
<div id="masterDiv"></div> 
</body> 
</html> 
+0

這個問題並不真正相關,但我不認爲這是有效的XHTML('

相關問題