lengyue0030

导航

使用jQuery+huandlebars循环遍历中使用索引

兼容ie8(很实用,复制过来,仅供技术参考,更详细内容请看源地址:http://www.cnblogs.com/iyangyuan/archive/2013/12/12/3471227.html)

<!DOCTYPE html>
<html>
  <head>
    <META http-equiv=Content-Type content="text/html; charset=utf-8">
    <title>关于循环中索引的使用 - by 杨元</title>
  </head>
  <body>
    <h1>关于循环中索引的使</h1>
    <!--基础html框架-->
    <table>
      <thead>
        <tr>
          <th>序号</th>
          <th>姓名</th>
          <th>性别</th>
          <th>年龄</th>
        </tr>
      </thead>
      <tbody id="tableList">
        
      </tbody>
    </table>
    
    <!--插件引用-->
    <script type="text/javascript" src="script/jquery.js"></script>
    <!--注意!这个例子用的是新版本handlebars,旧版本不支持-->
    <script type="text/javascript" src="script/handlebars-v1.3.0.js"></script>
    
    <!--Handlebars.js模版-->
    <!--Handlebars.js模版放在script标签中,保留了html原有层次结构,模版中要写一些操作语句-->
    <!--id可以用来唯一确定一个模版,type是模版固定的写法-->
    <script id="table-template" type="text/x-handlebars-template">
      {{#each student}}
      <tr>
        <td>{{addOne @index}}</td>
        <td>{{name}}</td>
        <td>{{sex}}</td>
        <td>{{age}}</td>
      </tr>
      {{/each}}
    </script>
    
    <!--进行数据处理、html构造-->
    <script type="text/javascript">
      $(document).ready(function() {
        //模拟的json对象
         var data = {
                      "student": [
                          {
                              "name": "张三",
                              "sex": "0",
                              "age": 18
                          },
                          {
                              "name": "李四",
                              "sex": "0",
                              "age": 22
                          },
                          {
                              "name": "妞妞",
                              "sex": "1",
                              "age": 19
                          }
                      ]
                  };
        
        //注册一个Handlebars模版,通过id找到某一个模版,获取模版的html框架
        //$("#table-template").html()是jquery的语法,不懂的童鞋请恶补。。。
        var myTemplate = Handlebars.compile($("#table-template").html());
        
        //注册一个Handlebars Helper,用来将索引+1,因为默认是从0开始的
        Handlebars.registerHelper("addOne",function(index,options){
          return parseInt(index)+1;
        });
        
        //将json对象用刚刚注册的Handlebars模版封装,得到最终的html,插入到基础table中。
        $('#tableList').html(myTemplate(data));
      });
    </script>
  </body>
</html>

 

posted on 2017-08-24 16:16  lengyue0030  阅读(169)  评论(0编辑  收藏  举报