otmpl 是一个轻量级前端模版(仅有39行无压缩代码,支持缓存),所用指令仅需[#...#]和{#...#},前者包含需要输出html语句,后者包含js变量。 支持javascript完整语法,你可以写for或者while或者其他任一javascript的语法。这个模板参考了YaYaTemplate,但我对其进行优化和改良,并缩短整体代码,提供更好的支持。

jQuery.tmpl = function (str, data, helper)
  • str:一个 jQuery 对象或字符串
  • data:json对象。
  • helper:扩展对象,例如下面示例中自定义一个方法。
  • 注意:str的内部采用 this.XXX 来访问 data,如:this.id == data.id。
缓存:
缓存只针对 jQuery.tmpl 方法,并且 str 参数必须是一个 jQuery 对象,利用 $.data 对渲染函数进行存储缓存。如以下代码执行两次“jQuery.tmpl($('#demo'),{id:1})”,只会分析一次,若传入的是“jQuery.tmpl($('#demo').html(),{id:1})”则会分析两次。
Template:
Scripts:
Result1:
Result2:
示例+源码:
示例+源码.rar
复杂示例:
<script id="addtmp" type="text/html">var item = {};var value = {};if(this.id){item.title  = " 编辑 [ " + this.id + " ]";item.icon = "icon-create";item.url = "@Url.Action("AddData")";item.success = function(data){$.msg.alert('新建成功!新的编号为:' + data.value + '。');$('#dataGrid').datagrid('reload');$('#dlg').dialog('close');};var data = $.api('@Url.Action("GetDataByID")' + '/' + this.id)if(data){if(data.value != null) value = data.value;else{$.msg.error('错误 '+data.code,data.message);$('#dlg').dialog('close');}}else{$.msg.error('数据访问发生了错误!');$('#dlg').dialog('close');}}else{item.title  = " 新建";item.icon = "icon-modify";item.url = "@Url.Action("ModifyData")";item.success = function(data){$.msg.alert(data ? '保存成功!' : '保存失败,数据可能不存在!');$('#dataGrid').datagrid('reload');$('#dlg').dialog('close');};}[#<div id="dlg" class="easyui-dialog" title="{#item.title#}" style="width: 400px; height: 210px; padding: 10px"data-options="iconCls: '{#item.icon#}',modal:true"><div class="filterArea onepcssgrid"><form class="api-form" data-options="url:'{#item.url#}',success:{#item.success#}"><div><div class="onerow"><div class="col2 text-right">Address</div><div class="col9"><input type="hidden" name="id" value="{#value.id#}" /><input type="text" name="address" style="width: 100%" value="{#value.address#}" /></div></div><div class="onerow"><div class="col2 text-right">City</div><div class="col9"><input type="text" name="city" style="width: 100%" value="{#value.city#}" /></div></div><div class="onerow"><div class="col2 text-right">Start</div><div class="col9"><input type="text" name="start" style="width: 100%" value="{#value.start#}" /></div></div><div class="onerow"><div class="col2 text-right">End</div><div class="col9"><input type="text" name="end" style="width: 100%" value="{#value.end#}" /></div></div></div><div style="padding: 5px; width: 100%; margin-top: 5px; text-align: center; height: 22px;"><input class="btn orange" type="submit" value="{#item.title#}" /><input class="btn white" type="reset" value="清空" /></div></form></div></div>
    #]
</script>

转载于:https://www.cnblogs.com/sofire/p/otmpl_v1_0.html

39行代码实现JS HTML模板(轻量+高效+易用)相关推荐

  1. js 监听 安卓事件_百行代码实现js事件监听实现跨页面数据传输

    百行代码实现js事件监听实现跨页面数据传输 使用场景 类似消息队列的使用场景,支持同页面和跨页面通信,发送消息和接收消息 技术原理 跨页面通信: 基于事件监听,通过监听 storage事件监听回调机制 ...

  2. 轻量高效!清华智能计算实验室开源基于PyTorch的视频 (图片) 去模糊框架SimDeblur

    作者丨科技猛兽 编辑丨极市平台 清华大学自动化系智能计算实验室团队开源基于 PyTorch 的视频 (图片) 去模糊框架 SimDeblur. 基于 PyTorch 的视频 (图片) 去模糊框架 Si ...

  3. 31款轻量高效的开源 JavaScript 插件和库

    31款轻量高效的开源 JavaScript 插件和库 目前有很多网站设计师和开发者喜欢使用由[url=http://www.kubiji.cn/forum-id261.html]JavaScript[ ...

  4. php横排代码,20行代码原生js实现文字横向轮播

    20行代码实现文字横向轮播效果 1 页面布局代码 恭喜793765***获得 50元超市充值卡卡奖励 恭喜793765***获得 50元超市充值卡卡奖励 恭喜793765***获得 50元超市充值卡卡 ...

  5. 爬取京东商品规格和评论,13行代码写成的模板,想爬哪个商品评论就爬哪个

    先看运行效果 上面图片是爬取京东阿玛尼口红的评论和商品规格 下面是13行代码,没错13行就可以了,想爬哪个就输入哪个商品的编号,商品编号在下面图片中找,我在爬取时候发现商品编号在url中有显示,比对之 ...

  6. 10行代码-原生JS双向数据绑定演示

    很简单的10行代码就可以实现输入框与页面实时显示的绑定,也就是百度一下一大堆的所谓的双向数据绑定,完全没有必要搞那么长 function test() {const container = docum ...

  7. [Ext JS]5.11 轻量版的树- treelist

    treelist, Ext.list.Tree 是一种轻量的用于显示树形结构的组件. Ext.list.Tree 的继承关系 Ext.list.Tree 继承自 Ext.Gadget, Gadget的 ...

  8. 6行代码实现js打印表格

    在业务中我们经常会遇到打印当前表格的需求,下面我们直奔主题. 首先我们要引一个js文件: <script type="text/javascript" src="J ...

  9. 39行代码AC_HDU-6740 2019CCPC秦皇岛 J MUV LUV EXTRA(KMP变形)

    励志用少的代码做高效表达 Problem description One day, Kagami Sumika is stuck in a math problem aiming at calcula ...

  10. 1044 Shopping in Mars(柳神39行代码+详细注释)

    分数 25 全屏浏览题目 切换布局 作者 CHEN, Yue 单位 浙江大学 Shopping in Mars is quite a different experience. The Mars pe ...

最新文章

  1. Python-pcl 随机采样一致性算法
  2. vsftpd用户配置 No.2
  3. demo flink写入kafka_Flink结合Kafka实时写入Iceberg实践笔记
  4. 容器集群管理平台的比较
  5. linux ssh 连接超时中断 解决方法
  6. EasyX和Windows库函数实现音乐播放
  7. linux 查看其他磁盘分区,Linux 查看磁盘分区.pdf
  8. Django横向二级导航栏(鼠标悬空事件)
  9. apiCloud中Frame框的操作,显示与隐藏Frame
  10. Linux-Ubuntu首次使用root账户登录
  11. 模拟扑克牌随机选择(Java)
  12. javascript实现图片轮播_手撸一个简易版轮播图(上)
  13. 锁住余额,为何还会更新异常?
  14. Acronis Disk Director 增大c盘
  15. (三)沟通管理风险管理采购管理@相关方管理
  16. 粒子能量、量子波动方程、狄拉克方程、量子态【量子力学基础知识学习笔记_3】
  17. 2022年版中国腰果酚市场趋势研究与竞争策略分析报告
  18. 小米平板1(A0101)官方线刷包_救砖包_解账户锁
  19. 名帖367 邓文原 章草《临皇象急就章》
  20. C语言入门(四):有关逻辑的运算符和表达式

热门文章

  1. 阶段3 1.Mybatis_04.自定义Mybatis框架基于注解开发_3 基于注解的自定义再分析
  2. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_12_注解_概念
  3. 彻底关闭Excle进程的几个方法
  4. MySQL基本数据操作
  5. Python 之图片对比
  6. shell——按指定列排序
  7. 在Sql Server上安装插件Sql Prompt
  8. mysql 中时间和日期函数应用
  9. WINDOWS NT/2000下如何屏蔽CTRL+ALT+DEL
  10. Win10安装Ubuntu16.04 双系统