使用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 相关文章推荐
关于实现代码语法标亮 dp.SyntaxHighlighter
Feb 02 Javascript
用javascript getComputedStyle获取和设置style的原理
Oct 10 Javascript
IE 下的只读 innerHTML
Aug 21 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
Apr 22 Javascript
高效率JavaScript编写技巧整理
Aug 23 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 Javascript
js控制表单不能输入空格的小例子
Nov 20 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
Jan 02 Javascript
JavaScript简单获取页面图片原始尺寸的方法
Jun 21 Javascript
jQuery实现文章图片弹出放大效果
Apr 06 jQuery
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 Javascript
vue.js 2.0实现简单分页效果
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程序员工具
2008/05/26 PHP
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
react使用CSS实现react动画功能示例
2020/05/18 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
环保专业大学生职业规划设计
2014/01/10 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
庆国庆活动总结
2014/08/28 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技