使用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 相关文章推荐
简易的投票系统以及js刷票思路和方法
Apr 07 Javascript
jquery实现简易的移动端验证表单
Nov 08 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 Javascript
Javascript中的迭代、归并方法详解
Jun 14 Javascript
JavaScript学习笔记整理_关于表达式和语句
Sep 19 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
bootstrap模态框远程示例代码分享
May 22 Javascript
vue 动态绑定背景图片的方法
Aug 10 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 Javascript
jquery分页插件pagination使用教程
Oct 23 jQuery
支付宝小程序自定义弹窗dialog插件的实现代码
Nov 30 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
Jul 29 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防止跨域提交表单
2013/11/01 PHP
php for 循环使用的简单实例
2016/06/02 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
js实现扫雷源代码
2020/11/27 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
python下MySQLdb用法实例分析
2015/06/08 Python
Python数据类型学习笔记
2016/01/13 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
如何将json数据转换为python数据
2020/09/04 Python
业务总经理岗位职责
2014/02/03 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
爱心募捐感谢信
2015/01/22 职场文书
紧急迫降观后感
2015/06/15 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
python pygame入门教程
2021/06/01 Python
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
HTML中的表格元素介绍
2022/02/28 HTML / CSS