使用jQuery模板来展现json数据的代码


Posted in Javascript onOctober 22, 2010

完整代码:

$.fn.parseTemplate = function(data) 
{ 
var str = (this).html(); 
var _tmplCache = {} 
var err = ""; 
try 
{ 
var func = _tmplCache[str]; 
if (!func) 
{ 
var strFunc = 
"var p=[],print=function(){p.push.apply(p,arguments);};" + 
"with(obj){p.push('" + 
str.replace(/[\r\t\n]/g, " ") 
.replace(/'(?=[^#]*#>)/g, "\t") 
.split("'").join("\\'") 
.split("\t").join("'") 
.replace(/<#=(.+?)#>/g, "',$1,'") 
.split("<#").join("');") 
.split("#>").join("p.push('") 
+ "');}return p.join('');"; //alert(strFunc); 
func = new Function("obj", strFunc); 
_tmplCache[str] = func; 
} 
return func(data); 
} catch (e) { err = e.message; } 
return "< # ERROR: " + err.toString() + " # >"; 
}

使用方法:

首先声明这个模板

<script id="template" type="text/html"> 
<table style="width:400px;"> 
<thead> 
<tr> 
<th>name</th> 
<th>age</th> 
<th>date</th> 
<th>type</th> 
</tr> 
</thead> 
<tbody> 
<# var xing = items.pm; 
#> 
<tr> 
<td> 
<#= xing.key #> 
</td> 
<td> 
<#= xing.key1 #> 
</td> 
<td> 
<#= xing.key #> 
</td> 
<td> 
<#= items.pm1 #> 
</td> 
</tr> 
<# 
#> 
</tbody> 
</table> 
<br /> 
<#= items.pm.length #> 记录 
</script>

然后使用
$(function(){ 
var json={"items":{"pm":{"key":"value","key1":"value1"},"pm1":"pmvalue"}}; 
var output=$('#template').parseTemplate(json); 
$('#cc').html(output); 
})

就是这么简单!
Javascript 相关文章推荐
求解开jscript.encode代码的asp函数
Feb 28 Javascript
javascript实现 在光标处插入指定内容
May 25 Javascript
JavaScript实现的简单幂函数实例
Apr 17 Javascript
JavaScript的Number对象的toString()方法
Dec 18 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
js模态对话框使用方法详解
Feb 16 Javascript
详解EasyUi控件中的Datagrid
Aug 23 Javascript
Angular 组件之间的交互的示例代码
Mar 24 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
小程序实现左滑删除功能
Oct 30 Javascript
浅谈如何优雅处理JavaScript异步错误
Nov 12 Javascript
微信小程序实现左滑删除效果
Nov 18 Javascript
jQuery 表单验证扩展(四)
Oct 20 #Javascript
jQuery 表单验证扩展(三)
Oct 20 #Javascript
jQuery 表单验证扩展代码(二)
Oct 20 #Javascript
事件模型在各浏览器中存在差异
Oct 20 #Javascript
自写简单JS判断是否已经弹出页面
Oct 20 #Javascript
javascript attachEvent绑定多个事件执行顺序问题
Oct 20 #Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
Oct 20 #Javascript
You might like
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
JavaScript接口实现方法实例分析
2020/05/16 Javascript
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
深入浅析Python中的yield关键字
2018/01/24 Python
python实现朴素贝叶斯算法
2018/11/19 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
什么是数据抽象
2016/11/26 面试题
临床医师专业个人自我评价范文
2013/11/07 职场文书
安全事故检讨书
2014/01/18 职场文书
设计师个人求职信范文
2014/02/02 职场文书
优秀党员获奖感言
2014/02/18 职场文书
经典公益广告词
2014/03/13 职场文书
小学语文国培研修日志
2015/11/13 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
Python实现双向链表
2022/05/25 Python