使用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使用之标记元素属性用法实例
Jan 19 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
Apr 12 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
Jan 26 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
Sep 23 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
Jan 24 Javascript
深入理解AngularJS中的ng-bind-html指令
Mar 27 Javascript
vue自动路由-单页面项目(非build时构建)
Apr 30 Javascript
vue项目打包后怎样优雅的解决跨域
May 26 Javascript
如何解决js函数防抖、节流出现的问题
Jun 17 Javascript
微信小程序云函数使用mysql数据库过程详解
Aug 07 Javascript
Javascript Web Worker使用过程解析
Mar 16 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
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
广告代码静态化js通用函数
2007/05/09 Javascript
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
python进阶教程之文本文件的读取和写入
2014/08/29 Python
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
世界最大的票务市场:viagogo
2017/02/16 全球购物
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
html5实现点击弹出图片功能
2021/07/16 HTML / CSS
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript