很喜欢写一些小方法或伪代码模型存起来,以后就可以直接拿来用了,虽然还是菜鸟一只,但爷爷都是从孙子过来的嘛,下面贴上本周用到的几个小例子
##1.在动态渲染元素的时候,需要逻辑判断
在循环渲染dom元素时,循环遍历中需要逻辑操作,如果不使用模板:
var addList = function(){
var lists= [],list="";
$.each(data,function(i,item){
if(条件1){
list+="<li>"+$(item).val()+"</li>";
}
if(条件2){
list+="<li>"+$(item).val()+"</li>";
}
lists.push(list);
});
$("#id").html(lists.join(""));
}
这是在看一同事代码时,发现她用push和join方法,渲染元素,觉得不多很显然即使正在渲染元素的循环中,可以方便的进行逻辑操作,用list+=即使渲染元素较多,也使得代码很规整;
##2.从一个json取相应属性创建另一个json对象
var createJsonObj=function(data){
var jsonObj = [];
$.each(data,function(i,item){
var innerObj = {
key:"",
value:""
};
innerObj.key = item.id;
innerObj.value = item.name;
jsonObj.push(innerObj);
});
return jsonObj;
}
以上是创建一个[{“key”:"XXX","value":"XXX"},{“key”:"XXX","value":"XXX"}]的json对象的简单小例子,大家可以试试考虑更好的封装,将传入新对象的key值实现自定义。
##3.js获取日期的一些小操作
这个网上也有很多例子,本周主要遇到下面两个操作
var jsDate = {
//获取当前2014-06-12 16:55格式日期
getTime:function(date){
var year ="",month="",day="",hour="",minute="",time="",oldday="";
if(date){
oldday=new Date(date.getTime()-3600*1000*24*7);
year= oldday.getFullYear();
month= oldday.getMonth()+1;
day = oldday.getDate();
hour = oldday.getHours();
minute = oldday.getMinutes();
}else{
var now= new Date();
year = now.getFullYear();
month = now.getMonth()+1;
day = now.getDate();
hour = now.getHours();
minute = now.getMinutes();
}
if(month<10){
month=‘0‘+month;
}
if(day<10){
day=‘0‘+day;
}
if(hour<10){
hour = ‘0‘ + hour;
}
if(minute<10){
minute=‘0‘+minute
}
time = (year+"-"+month+"-"+day+" "+hour+":"+minute);
return time;
},
// 计算相差n天日期
subTime:function(date,n){
date = new Date(date)
date = date.valueOf()
date = date - n * 24 * 60 * 60 * 1000
date = new Date(date)
date = jsDate.getTime(date);
return date;
}
}
上例主要是理清一些js时间的补零问题,以及取各个时间的获取演示
##4.逻辑判断多的时候,采用如下方式,规整代码
var bo1 = false,bo2 = false,bo3=false;
if(条件1){
bo1 = false;
逻辑操作1
}
if(条件2){
bo2 = false;
逻辑操作2
}
if(条件3){
bo3 = false;
逻辑操作3
}
if(bo1&&bo2){
逻辑操作4
}
...
可能这种看起来更烦了,但可能个人习惯,偏爱这种
此贴是6月份发于个人笔记里的,现在已有很多改进,还未整理...