jQuery插件jTemplates(模板

摘要:
1、 简要介绍一下它是一个基于jQuery开发的javascript模板引擎。其主要功能如下:1.通过JavaScript获取JSON数据;2.获取一个HTML模板,并将其与数据组合以生成页面的HTML。2、 让我们从一个简单的例子开始:<scripttype=“text/javascript”src=“http://t.zoukankan.com/jquery-1.2.6.pack.js "&

一 , 简单介绍

它是一个基于jQuery开发的javascript模板引擎。它主要的作用如下:

1. 通过JavaScript获取JSON形式的数据;

2. 获取一个HTML模板,与数据相结合,生成页面HTML。

 二 , 快速上手

先来看一个简单的例子:

<script type="text/javascript" src="http://t.zoukankan.com/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="http://t.zoukankan.com/jquery-jtemplates.js"></script>

<script type="text/javascript">
  $(document).ready(function() {
   //初始化数据
   var data = {
    name: '用户列表',
    list_id: '编号89757',
    table: [
     {id: 1, name: 'Rain', age: 22, mail: 'cssrain@domain.com'},
     {id: 2, name: '皮特', age: 24, mail: 'cssrain@domain.com'},
     {id: 3, name: '卡卡', age: 20, mail: 'cssrain@domain.com'},
     {id: 4, name: '戏戏', age: 26, mail: 'cssrain@domain.com'},
     {id: 5, name: '一揪', age: 25, mail: 'cssrain@domain.com'}
    ]
   };
   // 附上模板
   $("#result1").setTemplateElement("template");
   // 给模板加载数据
   $("#result1").processTemplate(data);
  }); 
</script>

 <!-- 模板内容 -->
 <textarea style="display:none">
  <strong>{$T.name} : {$T.list_id}</strong>
  <table>
         <tr>
     <th>编号</th>
     <th>姓名</th>
                    <th>年龄</th>
     <th>邮箱</th>
   </tr>
   {#foreach $T.table as record}
   <tr>
     <td>{$T.record.id}</td>
     <td>{$T.record.name}</td>
                    <td>{$T.record.age}</td>
     <td>{$T.record.mail}</td>
   </tr>
   {#/for}
  </table>
 </textarea>

<!-- 输出元素 -->
 <div ></div>

上面代码中,先导入了jQuery.js,然后导入jtemplates.js。

接下来新建了一个data数据的json对象。

var data = {
     ...... 
 };

然后在HTMl页面上增加一个 输出元素  和 一个模板元素:

最后在JS给输出元素 附加模板 和 数据。

这样,运行代码后,出现如下图所示界面。

jQuery插件jTemplates(模板第1张

  三 , 加载模板

  这次把模板放到一个单独的页面中,而不是直接写在页面里。

新建一个template.html,放入以下代码:

<strong>{$T.name} : {$T.list_id}</strong>
<table>
    <tr>
   <th>编号</th>
   <th>姓名</th>
            <th>年龄</th>
   <th>邮箱</th>
 </tr>
 {#foreach $T.table as record}
 <tr>
   <td>{$T.record.id}</td>
   <td>{$T.record.name}</td>
            <td>{$T.record.age}</td>
   <td>{$T.record.mail}</td>
 </tr>
 {#/for}
</table>

然后新建一个json文件,名称为cs.json,代码如下:

{
 name: "用户列表",
 list_id: "编号89757",
    table: [
    {id: 1, name: 'Rain', age: 22, mail: 'cssrain@domain.com'},
    {id: 2, name: '皮特', age: 24, mail: 'cssrain@domain.com'},
    {id: 3, name: '卡卡', age: 20, mail: 'cssrain@domain.com'},
    {id: 4, name: '戏戏', age: 26, mail: 'cssrain@domain.com'},
    {id: 5, name: '一揪', age: 25, mail: 'cssrain@domain.com'}
 ]
}

在jQuery中,可以通过$.ajax()方法来加载 json文件,代码如下:


<script type="text/javascript">
$(function(){
 $.ajax({
     type:       "post",
     dataType:   "json",
     url:        "cs.json",
    success:    function(data){
                    .....
                }
 });
});
</script>

在success回调函数里,首先需要设置模板,然后需要添加数据。如下代码所示:

 success:    function(data){

                   // 设置模板
                     $("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});
                   //  加载数据
                     $("#result1").processTemplate(data);
                }
 }

完整代码如下所示:

$(function(){
 $.ajax({
     type:       "post",
     dataType:   "json",
     url:        "cs.json",
    success:    function(data){
                    $("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});
                    $("#result1").processTemplate(data);
                }
 });
});

运行代码后,也可以得到上图的界面。

四 ,小结

关于 new Date().getTime()的简写方式:可以参考这篇文章:

http://www.cssrain.cn/article.asp?id=1116

CssRain提供的几个例子,按照官方写的:

jQuery插件jTemplates(模板第2张点击下载此文件

jtemplates官方首页 :

http://jtemplates.tpython.com/

官方的几个例子:
1. Simple template (see source as description)
example1.html

2. Example 1 + multiple elements + parameters
example2.html

3. Example 1 (Valid XHTML 1.1 !)
example3.html

4. Multitemplate (Valid XHTML 1.1)
example4.html

免责声明:文章转载自《jQuery插件jTemplates(模板》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mxgraph使用总结一修改linux iptable规则下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jQuery插件获取URL参数(jQuery.query)

代码 例如 当前你的URL是:http://www.cssrain.cn/index.php?test=1&kk=2如果想获取test,则可以引入插件后,用如下方法获取:var test = $.query.get('test');如果参数有多个相同的名称 ,则可以这样:var arr = $.query.get('testy');输出: [ 值...

KendoGrid基础

一.KendoUI Grid 绑定单击双击事件 原文:http://blog.csdn.net/sakuya_tan/article/details/51437857 <div id="grid"></div> <script> var grid = $("#grid").kendoGrid({...

推荐一些常用感觉不错的jQuery插件

JQuery插件繁多,下面是个人在工作和学习中用到感觉不错的,特此记录。 注意:1.9以上版本的jQuery 变动较大,为避免一些插件兼容错误,推荐使用1.8.3版本,或者使用 jQuerymigrate 迁移插件。 UI: jquery UI(官方的UI插件,精品汇集,功能强大完备,灵活性很强,有十几套主题可供选择,如果你使用他主题的话,注意其样式中使用...

还原数据库备份文件时,关于“System.Data.SqlClient.SqlError:媒体集有2个媒体簇,但只提供了1个。必须提供所有成员”的处理方式

好久没写博客了,最近在做毕设的权限管理模块,今天在还原数据库文件时,遇到了“System.Data.SqlClient.SqlError:媒体集有2个媒体簇,但只提供了1个。必须提供所有成员”这个错误,百度了一下,找到了原因和解决方式。 原因分析:1。备份的时候,旧路径没有删除,我添加了一个新路径,就无意中设置成了两个备份路径,SQL就会根据两个备份路径把...

Superfish jQuery菜单插件

Superfish是Suckerfish菜单样式的加强版。两者都是基于jQuery,结合现有纯CSS级联下拉菜单,还增加了以下这些网站管理员急需的功能。 1.Superfish样式在IE 6支持悬停(hover属性),增加的默认类为”sfHover”,你也可以改变类名。 2.鼠标移动的延时功能。为了更方便解决鼠标存在问题的朋友,默认延时为800毫秒,你也可以...

[转]CURL常用命令

From:http://www.cnblogs.com/gbyukg/p/3326825.html 常用参数 -v/--verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。 -m/--max-time <seconds> 指定处理的最大时长 -H/--header <header> 指定请求头...