栏目导航
热点推荐
- 使用JS进行目录上传(相当于批量
- 推荐学习:精通JS正则表达式
- js创建对象的几种常用方式小结(
- jQuery技巧总结
- 10个JavaScript小技巧
- 非常全面的实用JavaScript开发工
- 网站统计之javascript代码加载优
- JS实现广告顺序轮播和随机轮播四
- 使用javascript让页面自适应
- 24小时退弹一次的代码,可弹SP2S
- (Tips&Tricks;)用客户端模板精简J
- js教程:JavaScript作用域(Scope)
阅览排行
(Tips&Tricks;)用客户端模板精简JavaScript代码
www.jz123.cn 2009-08-20 来源: 中国建站 责任编辑(袁袁) 我要投递新闻
使用客户端模可以解决这个问题。你可以先用HTML定义一个模板,然后绑定JSON对象上去。这样你可以任意改变最终生成的HTML,而不用修改JavaScript。
John Resig’s Microtemplating engine
John Resig,JQuery的设计者,曾经在他的博客上发布过一个特别微型,但是很强大的的JS模板引擎,仅仅只有20行……。好吧,我承认看不大懂,但是它真的很强。
Code var _tmplCache = {} this.parseTemplate = function(str, data) { 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(/[rtn]/g, " ") .replace(/'(?=[^#]*#>)/g, "t") .split("'").join("'") .split("t").join("'") .replace(/<#=(.+?)#>/g, "',$1,'") .split("<#").join("');") .split("#>").join("p.push('") + "');}return p.join('');"; func = new Function("obj", strFunc); _tmplCache[str] = func; } return func(data); } catch (e) { err = e.message; } return "< # ERROR: " + err.htmlEncode() + " # >"; } |
这段代码将一个模板解析成一段JavaScript 代码,然后运行。模板的语法类似于ASP,用 和 嵌入代码。你可以嵌入任意的JavaScript代码,而不是仅仅几个命令。
一个简单的实例
这个例子将一个Json对象Customers,解析成表格。
模板
|
代码
1 content.innerHTML = parseTemplate($("#ItemTemplate").html(), { Customers: [ 2 { name: "张三", address: { street: "朝阳路", city: "北京"} }, 3 { name: "张三子", address: { street: "玄武路", city: "北京"} }, 4 { name: "李四", address: { street: "莫干山路", city: "杭州"} }, 5 { name: "李四子", address: { street: "武陵门路", city: "杭州"} }] 6 7 } 8 9 10 11 ); 12 |
上一篇:JavaScript2.0提案 下一篇:Javascript函数类型判断完美解决方案