使用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 相关文章推荐
仿163填写邮件地址自动显示下拉(无优化)
Nov 05 Javascript
js保留小数点后几位的写法
Jan 03 Javascript
jQuery中attr()方法用法实例
Jan 05 Javascript
在Python中使用glob模块查找文件路径的方法
Jun 17 Javascript
js动态获取子复选项并设计全选及提交的实现方法
Jun 24 Javascript
vue.js语法及常用指令
Oct 29 Javascript
vue组件父与子通信详解(一)
Nov 07 Javascript
详解Vue2 SSR 缓存 Api 数据
Nov 20 Javascript
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
Feb 08 Javascript
node跨域转发 express+http-proxy-middleware的使用
May 31 Javascript
JavaScript使用类似break机制中断forEach循环的方法
Nov 13 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 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
Javascript 面向对象特性
2009/12/28 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
基于python编写的微博应用
2014/10/17 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
从0开始的Python学习016异常
2019/04/08 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
社区庆中秋节活动方案
2014/02/07 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
销售团队口号大全
2014/06/06 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
会议室管理制度范本
2015/08/06 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python
java多态注意项小结
2021/10/16 Java/Android
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js