jquery.tmpl.js 是一个模板js  ,主要有2个方法

(1):$.template()方法,将一段script或者是Html编译为模板,例如 $.template('myTemplate', markup);  后者的markup一般是一段script脚本包围的变量名,或者是js里面的变量名,而前者的myTemplate则是指,我将markup编译为一个模板缓存,模板名称为myTemplate,如果我以后有需要在其他地方调用,则只用拿 myTemplate 即可,因为他已经在js的缓存里面了

(2):$('#myTemplate ).tmpl(userLangs).appendTo('#eachList');

//模板               绑定      Json数据 添加到 指定的div或者是容器里面

一:基本使用方法演示  分4个步骤:(1)引入jquery和tmpl脚本 (2)开始写需要填充的模板和变量 (3)数据准备(4) 绑定模板

<!--引入脚本--><script src="js/jquery-1.4.1.min.js" type="text/javascript"></script><script src="js/jquery.tmpl.js" type="text/javascript"></script><!--开始写模板--><script id="each" type="text/x-jquery-tmpl"> <li>ID: ${ID}; Name: ${Name};<br />Langs:<ul>{{each Langs}}<li>${$index + 1}: <label>${$value}. </label></li>{{/each}}</ul></li> </script><script type="text/javascript">$(function () {//这里是数据var userLangs = [{ID: 'think8848', Name: 'Joseph Chan', Langs: ['Chinese', 'English']},{ID: 'aCloud', Name: 'Mary Cheung', Langs: ['Chinese', 'French']}];//模板   绑定    数据      添加到   指定的div或者是容器里面$('#each').tmpl(userLangs).appendTo('#eachList');}); </script>

然后我们在html页面里面,给一个容器,用于显示数据绑定之后添加到什么容器上,可以是div也可以是其他的,例如这里是ul

1:  <ul id="eachList">
2:  <!--这里是将要显示到的DIV层-->
3:  </ul>
4:  

显示结果

生成的html代码

二:高级一点的运用

Ajax获取Json数据,并绑定,并且我们的模板,第一个 采用 script 包围的方式,第二个则直接采用 js变量

$(function () {$.ajax({type: "post",url: "handler/xxHandler.ashx",data: { classid: "12000001989", type: "getclassinfo" },dataType: "json",success: populate //如果ajax成功,则执行这个操作});function populate(data) {// 把模板标记,编译成[模板缓存],起个名字叫  eachTemplate,方便我们以后在其他地方调用$.template("eachTemplate", each);//把缓存 加入 数据,然后添加到容器里面$.tmpl("eachTemplate", data).appendTo("#eachList");// 同一个数据,也能第二次利用$.template("hwTemplate", HomeWorkSendTemplate);//把缓存 加入 数据,然后添加到容器里面$.tmpl("hwTemplate", data).appendTo("#hwList");};});

后台 handler 获取参数,并且返回 序列化的 json 给前台脚本

模板方式一:使用script脚本包围的方式,注意,一定要加上一个 type="text/x-jquery-tmpl"

    <script id="each" type="text/x-jquery-tmpl">
//模板1 直接用script脚本包围的变量  注意后面一定要加type为 tmpl的特定值<li>班级Id: ${ClassId}; 班级名称: ${ClassName};<br />Langs:<ul>{{each Langs}}<li>${$index + 1}: <label>${$value}. </label></li>{{/each}}</ul></li> </script>

模板方式二,采用外部链接 js 脚本的方式,这种方式 不用自己在后面写 type="text/x-jquery-tmpl"

<script src="js/mytemplates.js" type="text/javascript"></script>

/* 模板二  直接在 其他的例如 mytemplate.js 里面写变量 即可 注意,要在自己的页面里面进行脚本引入 */
var HomeWorkSendTemplate = '<div id="hwsendmain_${ClassId}" class="content_body">';
HomeWorkSendTemplate += '<!--布置作业开始--><div id="tag15">';
HomeWorkSendTemplate += '       <div class="content">';
HomeWorkSendTemplate += '         <div class="top">布置作业</div>';

三:使用复杂的json格式展示数据

(1):准备好模板,这里我们是使用一个表格来展示,所以模板是用的tr来显示每一行的数据

<!—模板  直接用script脚本包围的变量  注意后面一定要加type为 tmpl的特定值--><script id="classMuban" type="text/x-jquery-tmpl"> <tr><td>${Cid}</td>
                        <td>${Cname}</td><td><ul>{{each Students}}<li>序号${$index + 1}: <label>学生id:${$value.Sid}学生名称:${$value.Sname}学生头像:{{if $value.Sphoto}}  
                                   <img src="${$value.Sphoto}" /> {{else}}  <img src="data:images/ico_01.png" title="这里是默认头像"/>   {{/if}}   学生是否选中:${$value.Check}</label></li>{{/each}}</ul>
                   </td>
</tr>        </script>

(2):准备数据,以及当文档加载完毕之后,执行绑定

//这里一定要加上,是在文档载入完成之后,才执行绑定模板的$(function () {var demodata = [{"Cid": "1","Cname": "三年二班","Check": "0   0表示1个都没有勾选  1表示至少勾选了1个  2表示全部勾选","Cphoto": "班级图片地址","Students": [{"Sid": "s1","Sname": "周杰伦","Sphoto": "",  //这里可能没有图片,那么我们显示的时候,还要判断是否显示默认图片"Check": "0表示没有勾选 1表示已经勾选"},{"Sid": "s2","Sname": "李宇春","Sphoto": "http://pic.cnitblog.com/face/582230/20131114141342.png","Check": "0表示没有勾选 1表示已经勾选"}]}, {"Cid": "1","Cname": "三年四","Check": "0   0表示1个都没有勾选  1表示至少勾选了1个  2表示全部勾选","Cphoto": "班级图片地址","Students": [{"Sid": "s3","Sname": "周笔畅","Sphoto": "http://pic.cnitblog.com/face/572602/20131112163110.png","Check": "0表示没有勾选 1表示已经勾选"},{"Sid": "s4","Sname": "董瑞","Sphoto": "http://pic.cnitblog.com/face/u119077.jpg","Check": "0表示没有勾选 1表示已经勾选"}]}];//编译模板classMuban为一个变量名-> nameClassMuban  这样以后在其他地方,就可以方便调用 nameClassMuban了$.template("nameClassMuban", window.classMuban);//把模板缓存 加入 数据,然后添加到容器里面$.tmpl("nameClassMuban", demodata).appendTo("#showMyJson");     }); 

(3):容器,这里为了显示方便,我们就用一个表格,并且第一行,我们自己已经给了。如果是实际项目中,一般都是DIV做容器

<table id="showMyJson" border="1"><tr><td>&nbsp;班级Id</td><td>&nbsp;班级名称</td><td>&nbsp;班级学生</td></tr></table>

最后我们来看看效果如何
代码生成如下

转载于:https://www.cnblogs.com/joeylee/p/3457273.html

Jquery 模板插件 jquery.tmpl.js 的使用方法(1):基本语法,绑定,each循环,ajax获取json数据...相关推荐

  1. JQuery模板插件jquery.tmpl-动态ajax扩展

    在上一篇JQuery模板插件-jquery.tmpl中介绍了这款插件.有时我们需要去动态的ajax去加载模板,或者数据,根据url参数或者其他信息加载不同的模板,数据.在我的某个项目中有这个需求,所以 ...

  2. jQuery AJAX获取JSON数据解析多种方式示例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Jquery 模板插件 jquery.tmpl.js 的使用方法(2):嵌套each循环,temp调用(使用预编译的模板缓存)...

    直接上代码吧 一:主窗口 /*#region SendChooseTargetTemplate 发送候选人主窗口模板*/ var SendChooseTargetTemplate = ''; Send ...

  4. jQuery分页插件(jquery.page.js)的使用

    效果描述: 不用分页即可显示的jQuery插件 jQuery分页插件--jQuery.page.js用法很简单,效果很棒 1.前端 首先html的head中引入相关css与js <link re ...

  5. jQuery遮罩插件jQuery.blockUI.js简介

    概述: jQuery BlockUI插件可以在不锁定浏览器的同时,模拟同步模式下发起Ajax请求的行为.该插件激活时,会阻止用户在页面进行的操作,直到插件被关闭.BlockUI通过向DOM中添加元素实 ...

  6. Ajax提交json数据,通过jquery.cookie.js插件解决csrf_token问题

    html代码和js代码 <!doctype html> <html lang="en"> <head><meta charset=&quo ...

  7. SlidesJS基本使用方法和官方文档解释 【Jquery幻灯片插件 Jquery相册插件】

    SlidesJS基本使用方法和官方文档解释 [Jquery幻灯片插件 Jquery相册插件] 标签: jquery文档functionstringdiv相册 2012-04-19 15:23 3931 ...

  8. jQuery使用getJSON方法获取json数据完整示例

    本文实例讲述了jQuery使用getJSON方法获取json数据.分享给大家供大家参考,具体如下: demo.js: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  9. jQuery、ajax添加Json数据

    需求说明: 简单的演示ajax提交json数据. 代码说明: ajax在传输数据的时候基本格式大都是固定的,只需要修改传输类型即可.下面介绍基本的参数提交. 步骤一:建立一个html或者jsp页面,引 ...

  10. jQuery通过ajax方法获取json数据不执行success的原因及解决方法

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

最新文章

  1. 一个交换程序的通用版本
  2. 对于今年AI电磁组的一些看法
  3. mfc倾斜文本输入_文本检测知识梳理(持续更新)
  4. python/selenium/chrome
  5. 锦江公司 nginx 转发
  6. p1292监狱(动态规划)
  7. .net下汇总搜索引擎关键字编码
  8. Golang(八)go modules 学习
  9. paip.手机ROOT过程总结
  10. SQL语句:查询多表更新数据
  11. V20西门子变频器怎么选型
  12. cad墙线打断lisp_autocad 2010怎么打断墙线?
  13. 记录一下Android 长截屏功能
  14. ospf路由 华3_华三模拟器ospf的简单配置
  15. Linux (Ubuntu): bash: tailf: command not found
  16. 汇编学习软件推荐 - 汇编金手指
  17. mysql用update select批量处理数据
  18. winform窗口的切换
  19. C++ opencv viz位姿可视化
  20. php操作rtf,php实现html转为rtf格式_PHP教程

热门文章

  1. cocos2dx_lua读取unity手机游戏本地文件
  2. 如何使用VSCode开发Qt项目?
  3. 做软件开发学好算法的重要性
  4. win10配置免密登录linux(centos7)
  5. 再看《英雄本色》:世上已无英雄?
  6. centos 6 php mysql_Centos 6安装完美搭建mysql、php、apache之旅
  7. jqwidgets 国际化- 中文 jqxGrid 中文语言包 gridlocalization
  8. 1393: 国防部长PIPI
  9. HTL里面使用sling model的时候传参问题
  10. 配置8266连接中移物联网OneNet平台