使用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 autocomplate 自扩展插件、自动完成示例代码
Mar 28 Javascript
jQuery中将函数赋值给变量的调用方法
Mar 23 Javascript
判断在css加载完毕后执行后续代码示例
Sep 03 Javascript
jQuery $命名冲突解决方案汇总
Nov 13 Javascript
js实现全国省份城市级联下拉菜单效果代码
Sep 07 Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
May 17 Javascript
微信小程序-详解数据缓存
Nov 24 Javascript
angularjs $http实现form表单提交示例
Jun 09 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
May 20 Javascript
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
Vue中使用Echarts仪表盘展示实时数据的实现
Nov 01 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
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
Python中的fileinput模块的简单实用示例
2015/07/09 Python
python3安装speech语音模块的方法
2018/12/24 Python
用python进行视频剪辑
2020/11/02 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
Champion官网:美国冠军运动服装
2017/01/25 全球购物
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
办公室文员工作自我评价
2013/12/01 职场文书
化妆品店促销方案
2014/02/24 职场文书
音乐教育感言
2014/03/05 职场文书
工作作风承诺书
2014/08/30 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python