使用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 相关文章推荐
几款极品的javascript压缩混淆工具
May 16 Javascript
JQuery autocomplete 使用手册
Apr 01 Javascript
JS运行耗时操作的延时显示方法
Nov 19 Javascript
javascript中不提供sleep功能如何实现这个功能
May 27 Javascript
jquery.cookie.js使用指南
Jan 05 Javascript
关于定制FileField中的上传文件名称问题
Aug 22 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
关于axios如何全局注册浅析
Jan 14 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 Javascript
基于游标的分页接口实现代码示例
Nov 12 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
jquery实现拖拽添加元素功能
Dec 01 jQuery
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 显示指定路径下的图片
2009/10/29 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
python动态加载包的方法小结
2016/04/18 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
利用python实现逐步回归
2020/02/24 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
DOM和JQuery对象有什么区别
2016/11/11 面试题
DIY手工制作经营店创业计划书
2014/02/01 职场文书
2015年教师新年寄语
2014/12/08 职场文书
毕业生自荐信范文
2015/03/05 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书