1 <!DOCTYPE html> 2 <html> 3 <head> 4 <META http-equiv=Content-Type content="text/html; charset=utf-8"> 5 <title>關於循環中索引的使用 - by 楊元</title> 6 </head> 7 <body> 8 <h1>關於循環中索引的使</h1> 9 <!--基礎html框架--> 10 <table> 11 <thead> 12 <tr> 13 <th>序號</th> 14 <th>姓名</th> 15 <th>性別</th> 16 <th>年齡</th> 17 </tr> 18 </thead> 19 <tbody id="tableList"> 20 21 </tbody> 22 </table> 23 24 <!--插件引用--> 25 <script type="text/javascript" src="script/jquery.js"></script> 26 <!--注意!這個例子用的是新版本handlebars,舊版本不支持--> 27 <script type="text/javascript" src="script/handlebars-v1.3.0.js"></script> 28 29 <!--Handlebars.js模版--> 30 <!--Handlebars.js模版放在script標籤中,保留了html原有層次結構,模版中要寫一些操做語句--> 31 <!--id能夠用來惟一肯定一個模版,type是模版固定的寫法--> 32 <script id="table-template" type="text/x-handlebars-template"> 33 {{#each student}} 34 <tr> 35 <td>{{addOne @index}}</td> 36 <td>{{name}}</td> 37 <td>{{sex}}</td> 38 <td>{{age}}</td> 39 </tr> 40 {{/each}} 41 </script> 42 43 <!--進行數據處理、html構造--> 44 <script type="text/javascript"> 45 $(document).ready(function() { 46 //模擬的json對象 47 var data = { 48 "student": [ 49 { 50 "name": "張三", 51 "sex": "0", 52 "age": 18 53 }, 54 { 55 "name": "李四", 56 "sex": "0", 57 "age": 22 58 }, 59 { 60 "name": "妞妞", 61 "sex": "1", 62 "age": 19 63 } 64 ] 65 }; 66 67 //註冊一個Handlebars模版,經過id找到某一個模版,獲取模版的html框架 68 //$("#table-template").html()是jquery的語法,不懂的童鞋請惡補。。。 69 var myTemplate = Handlebars.compile($("#table-template").html()); 70 71 //註冊一個Handlebars Helper,用來將索引+1,由於默認是從0開始的 72 Handlebars.registerHelper("addOne",function(index,options){ 73 return parseInt(index)+1; 74 }); 75 76 //將json對象用剛剛註冊的Handlebars模版封裝,獲得最終的html,插入到基礎table中。 77 $('#tableList').html(myTemplate(data)); 78 }); 79 </script> 80 </body> 81 </html>
序號是指:在循環過程當中,當前循環的索引,說白了,就是當前爲第幾回循環,通常從0開始,Handlebars.js中也是如此。javascript
有什麼用呢?最多見的是在顯示table的時候,給每行加一個序號,清晰的展現出頁面上共有多少條記錄,如上邊的例子。html
除此以外,小菜爲了在循環中區分不一樣的id,剛好須要一個序號,確保id不重複,用過bootstrap的童鞋應該知道,好多事件能夠經過id定位,例如Listgroup控件。java
廢話少說,在Handlebars.js中,能夠經過{{@index}}來獲取當前的索引,也就是說@index這個變量就表明了當前索引。jquery
在上邊的例子裏,table的序號從0開始不太好,因而註冊了一個Helper,將索引+1。json