项目中常用的js封装
Drakecb Lv3

判断undefined返回空字符串

1
2
3
4
5
6
7
//如果为undefined 返回空空字符串
function formatundefined(str){
if(str == null || str == undefined || str == "undefined"){
return "";
}
return str;
}

点击事件 判断对应div是否已加载并显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
* 点击事件 判断对应div是否已加载并显示
* @param showClass 需要加载的div class名
* @param loadUrl 请求url
*/
function showWidgets(showClass, loadUrl){
if(!$(showClass).is(':empty')){
var status = $(showClass).css('display');
if(status == 'block'){
$(showClass).css('display', 'none');
}else{
$(showClass).show();
}
}else{
$(showClass).load(loadUrl);
$(showClass).show();
}
}


/**
* 点击事件 判断对应div是否已加载并显示
* 两次id相同则显示隐藏,不同直接加载
* @param showClass 需要加载的div class名
* @param preid 之前的id
* @param curid 现在的id
*
*/
function showWidgetsById(showClass, loadUrl,preid,curid){
if(preid==curid){
showWidgets(showClass,loadUrl);
}else{
$(showClass).load(loadUrl);
$(showClass).show();
}
}

ajax封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/**
*
* @param type GET/POST
* @param url 请求路径
* @param data 请求对象,没有就null
* @param successFun 回调函数
* @param async true异步,false同步
*/
function send(type,url,data,successFun,async){
var sessionId = getSessionId();
if(sessionId==null||sessionId==undefined||sessionId==""){
window.location.href="/jczh/login.html";
return;
}
var retObj;
var param = {"param":"","sessionId":sessionId};
if(data!=null){
param = {"param" :JSON.stringify(data),"sessionId":sessionId};
}
$.ajax({
type:type,
url:server_url+url,
contentType:"application/x-www-form-urlencoded;charset=UTF-8",//格式
dataType:'json',
data:param,
async:async,
cache:false,
beforeSend:function(){
},
complete:function(){
},
error:function(){
//alert("访问后台"+url +"异常,请联系管理员!");
},
success:function(data){
if(data.code==-1){
window.location.href="/jczh/login.html";
}else if(data.code==0){
//后端出错
alert(data.data);
}else if(data.code==2){
//成功,比如新增成功,需要输出的
alert(data.data);
if(successFun!=null){
successFun(data.data);
}
}else if(data.code=1){
//数据回调
if(successFun!=null){
successFun(data.data);
}
}
retObj=data;
}
});
return retObj;
}

上传文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function fileUpLoad(type,url,data,successFun,async,fileButtonId){
var sessionId = getSessionId();
if(sessionId==null||sessionId==undefined||sessionId==""){
window.location.href="/jczh/login.html";
return;
}
var param = {"param":"","sessionId":sessionId};
if(data!=null){
param = {"param" :JSON.stringify(data),"sessionId":sessionId};
}
$.ajaxFileUpload({
secureuri:false,
fileElementId:fileButtonId,
datatype:'json',
async:async,
url:server_url+url,
type:type,
data:param,
beforeSend:function(){
//传数据之前处理函数(可不用写)
},
success:function(reply){
},
error:function(e){
//错误处理函数
},
complete:function(replay){
//传数据完成处理函数(可不用写)
try{
var str = replay.responseText.split("{")[1].split("}")[0];
str = "{"+str+"}";
var data = JSON.parse(str);
if(data.code==-1){
window.location.href="/jczh/login.html";
}else if(data.code==0){
//后端出错
alert(data.data);
}else if(data.code==2){
//成功,比如新增成功,需要输出的
alert(data.data);
if(successFun!=null){
successFun(data.data);
}
}else if(data.code=1){
//数据回调
if(successFun!=null){
successFun(data.data);
}
}
}catch(e){}
}
});
}

往sessionStorage中存入,移除,获取数据,以及获取用户信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
* 往会话中存数据
* @param key
* @param value
*/
function putSessionData(key,value){
window.sessionStorage.setItem(key,JSON.stringify(value));
}

/**
* 往会话中移除数据
* @param key
* @param value
*/
function removeSessionData(key){
window.sessionStorage.removeItem(key);
}

/**
* 往会话中获取数据
* @param key
*/
function getSessionData(key){
try{
return jQuery.parseJSON(sessionStorage.getItem(key));
}catch(e){
return null;
}
}
/**
* 往会话中获取用户信息
* @param key
*/
function getSessionUserInfo(){
var userInfo = getSessionData("userInfo");
if(userInfo==null){
window.location.href="/jczh/login.html";
return;
}
return userInfo;
}
function getSessionId(){
var userInfo = getSessionData("userInfo");
if(userInfo==null){
return null;
}
return userInfo.sessionId;
}


#### 通过key来获取html?后面的数据

/**
* 通过key来获取html?后面的数据
* */
function getUrlParam(key){
var url = decodeURI(location.search.replace(/^\?/,'')).split('&');
var paramsObj = {};
for(var i = 0, iLen = url.length; i < iLen; i++){
var param = url[i].split('=');
paramsObj[param[0]] = param[1];
}
if(key){
return paramsObj[key] || '';
}
return paramsObj;
}


#### 判断数据类型

/**
* 判断数据类型
*/
var toString = Object.prototype.toString;
function type(elem) {
if (elem == null) {
return elem + '';
}
return toString.call(elem).replace(/[\[\]]/g, '').split(' ')[1].toLowerCase();
}

判断数组是否包含元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* 判断数组是否包含元素
* @param arr
* @param obj
* @returns {Boolean}
*/
function contains(arr,obj){
var i = arr.length;
while(i--){
if(arr[i] == obj){
return true;
}
}
return false;
}

移除数组里的元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* 移除数组里的元素
* @param arr
* @param obj
* @returns {Array}
*/
function remove(arr,obj){
var i = arr.length;
var newarr = new Array();
while(i--){
if(arr[i] != obj){
newarr.push(arr[i]);
}
}
return newarr;
}

原生拖拽

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function dragEvent(drag,dbody){   
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
drag.onmousedown = function (event) {
var event = event || window.event;
var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
var bodyX = pageX - dbody.offsetLeft;
var bodyY = pageY - dbody.offsetTop;
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
document.onmousemove = function (event) {
var event = event || window.event;
var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
dbody.style.left = pageX - bodyX + "px";
dbody.style.top = pageY - bodyY + "px";
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

};
};
document.onmouseup = function () {
document.onmousemove = null;
};
};

判断是否有下级ul

1
2
3
4
5
6
7
8
9
10
11
function haschildrenUL(classname,addclass){
var Userlistli = $(classname);
for(var z = 0; z < Userlistli.length; z++ ){
var haschildrenUl = $(Userlistli[z]).find("ul");
if( haschildrenUl.length <= 0 ){
var hasi = $(Userlistli[z]).find("i");
$(hasi).hide();
$(hasi).parent().addClass(addclass);
}
}
}

判断是否谷歌浏览器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* 判断是否谷歌浏览器
* @returns {Boolean}
*/
function isChrome(){
if(navigator){
var userAgent = navigator.userAgent;
if(userAgent){
if(userAgent.indexOf("Chrome")>-1){
return true;
}
}
}
return false;
}

往数组里面增加属性

1
2
3
4
5
6
7
8
9
10
/**
* 往数组里面增加属性
* @param array
* @param dataType
*/
function addDataType(array,dataType){
for(var i in array){
array[i].type = dataType;
}
}

获取当前日期时间 格式”yyyy-MM-dd HH:MM:SS”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//获取当前日期时间 格式"yyyy-MM-dd HH:MM:SS"
function getNowFormatDate() {
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9){
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9){
strDate = "0" + strDate;
}

var currentdata = date.getFullYear() + seperator1 + month + seperator1 + strDate + " " + date.getHours() + seperator2 + date.getMinutes() + seperator2 + date.getSeconds();

return currentdata;
}

获取当前日期前一个月时间 格式”yyyy-MM-dd HH:MM:SS”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function getLastFormatDate() {
var date = new Date();
date.setMonth(date.getMonth()-1);
var seperator1 = "-";
var seperator2 = ":";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var strDate = date.getDate();
var hours = date.getHours();
var seconds = date.getSeconds();
var minutes = date.getMinutes();
if (month >= 1 && month <= 9){
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9){
strDate = "0" + strDate;
}

if (hours >= 0 && hours <= 9){
hours = "0" + hours;
}
if (seconds >= 0 && seconds <= 9){
seconds = "0" + seconds;
}
if (minutes >= 0 && minutes <= 9){
minutes = "0" + minutes;
}

var lastdata = year + seperator1 + month + seperator1 + strDate + " " + hours + seperator2 + minutes + seperator2 + seconds;

return lastdata;
}

随机生产6位数的数字

1
2
3
4
function  getUUidNum(){
var code = Math.floor(Math.random()*900000)+100000;
return code;
}

获取当天日期,获取前n天的日期

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//获取当天日期
function getCurrentDate() {
var d = new Date();
var year = d.getFullYear();
var mon = d.getMonth()+1;
var day = d.getDate();
s = year+"-"+(mon<10?('0'+mon):mon)+"-"+(day<10?('0'+day):day);
return s;
}


//获取前n天的日期
function getBeforeDate(n) {
var n = n;
var d = new Date();
var year = d.getFullYear();
var mon = d.getMonth()+1;
var day = d.getDate();
if(day<=n){
if(mon>1){
mon = mon-1;
}else{
year = year-1;
mon = 12;
}
}
d.setDate(d.getDate()-n);
year = d.getFullYear();
mon = d.getMonth()+1;
day = d.getDate();
s = year+"-"+(mon<10?('0'+mon):mon)+"-"+(day<10?('0'+day):day);
return s;
}

返回顶部

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
** Scroll To Top
** 选择器为 .scroll-to-top
*/
$(window).scroll(function () {
if ($(this).scrollTop() >= 500) {
$('.scroll-to-top').fadeIn();
} else {
$('.scroll-to-top').fadeOut();
}
});


$('.scroll-to-top').click(function () {
$('html, body').animate({ scrollTop: 0 }, 800);
return false;
});

获取一个对象的长度

1
2
3
4
5
6
7
/*
** Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 。
** 语法 Object.keys(obj)
*/
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']
console.log(Object.keys(arr).length); // console: 3
 Comments