使用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实现动态加载CSS
Jan 26 Javascript
jQuery 移动端artEditor富文本编辑器
Jan 11 Javascript
jquery+css3实现会动的小圆圈效果
Jan 27 Javascript
基于jquery实现轮播焦点图插件
Mar 31 Javascript
JS上传组件FileUpload自定义模板的使用方法
May 10 Javascript
AngularJS中的包含详细介绍及实现示例
Jul 28 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
webpack3+React 的配置全解
Aug 21 Javascript
layui select动态添加option的实例
Mar 07 Javascript
使用Angular自定义字段校验指令的方法示例
Feb 01 Javascript
微信小程序 select 下拉框组件功能
Sep 09 Javascript
JavaScript实现多文件下载方法解析
Aug 07 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 中dirname(_file_)讲解
2007/03/18 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
php实现图片缩略图的方法
2016/03/29 PHP
php二维码生成以及下载实现
2017/09/28 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
js表单登陆验证示例
2016/10/19 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
python读文件的步骤
2019/10/08 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
python能做哪些生活有趣的事情
2020/09/09 Python
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
精神文明单位申报材料
2014/05/02 职场文书
爱国主义演讲稿
2014/05/07 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书