使用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 相关文章推荐
jQuery 第二课 操作包装集元素代码
Mar 14 Javascript
jQuery实现的类flash菜单效果代码
May 17 Javascript
js 三级关联菜单效果实例
Aug 13 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
Nov 26 Javascript
分享20个提升网站界面体验的jQuery插件
Dec 15 Javascript
JavaScript中对象介绍
Dec 31 Javascript
jquery 根据name名获取元素的value值
Feb 27 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
Apr 14 Javascript
Bootstrap实现水平排列的表单
Jul 04 Javascript
node.js实现微信开发之获取用户授权
Mar 18 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 Javascript
JS实现简单移动端鼠标拖拽
Jul 23 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
Windows下的PHP5.0详解
2006/11/18 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
基于对象合并功能的实现示例
2017/10/10 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
毕业生自我鉴定
2013/12/04 职场文书
青年创业培训欢迎词
2014/01/10 职场文书
优秀员工表扬信
2014/01/17 职场文书
大学生安全责任书
2014/07/25 职场文书
动物科学专业求职信
2014/07/27 职场文书
2014年度个人总结范文
2015/03/09 职场文书
闪闪红星观后感
2015/06/08 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
Python基础之变量的相关知识总结
2021/06/23 Python
Go语言基础map用法及示例详解
2021/11/17 Golang
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js