doT来了

涉及:
js,html,ajax交互,dom操作,属于前端开发
问题:
js拿到ajax数据后操纵dom对象表现出来,特别麻烦而且容易重复加载,并且需要考虑加载顺序,可移植性差
解决方案:

引入doT,下载地址:(https://github.com/olado/doT)

返回数据

array(
		[0]=>array(
				'url'=>'http://www.baidu.com',
				'item'=>'百度'
			),
		[1]=>array(
				'url'=>'http://china.alibaba.com/',
				'item'=>'阿里巴巴'
			),
		[2]=>array(
				'url'=>'http://www.kingsoft.com/',
				'item'=>'金山'
			),
	);

html里准备

<div id='menu'>
		<script id='son_menu' type='text/doT'>
			<dl>
				{{~it:val}}
					<dd><a href='{{=val.url}}'>{{=val.item}}</a></dd>
				{{~}}
			</dl>
		</script>
	</div>


js里准备

var son_menu=$('#son_menu');
	var son_menufn=doT.template(son_menu.html());

当需要的时候触发doT

$('#menu').html(son_menufn(data));

搞定!


免费派送:
定界符 {{}},习惯用这个
循环开始       {{~it :val}},it为总数据,如果遍历多维数组,可以这样{{~val.name :v}},其中val为上一层循环的子项
循环结束 {{~}}
变量占位       {{=xxx.xx}} 注意是“=”不是“~”,注意哦
if等语句

常规
if(a>3){                             =>             {{if(a>3){}}
                               
}else{                               =>              {{}else{}}

}                                    =>              {{}}}

就是这样用定界符包起来

使用感受:
比起以前操纵dom对象来省了很多时间,杜绝了重复加载问题,不过注意一点,doT需要一点时间来拿到数据并不具,如果你的项目用的是模板成套UI,替换doT后可能会导致原UIjs特效消失,这个函数$.getScript('')可能会对你有帮助,不过我没试,以为我重写的特效




个人记录,仅供参考,没有最好,只有更好,欢迎拍砖,砸鸡蛋,多交流




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值