常用JavaScript函数封装

来源:互联网 发布:美国物价知乎 编辑:程序博客网 时间:2024/05/20 22:35
trigger():触发被选元素的指定事件类型,例如:jQuery("input#ine").trigger("event");  mouseover():触发或将函数绑定到被选元素的鼠标悬停事件  blur():元素失去焦点时发生 blur 事件  focus():触发或将函数绑定到被选元素的获得焦点事件  change():触发被选元素的 change 事件,该事件会在元素失去焦点时发生  

1.随机字符

function randomString(len) {    len = len || 32;    var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz';    /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/    var maxPos = $chars.length;    var pwd = '';    for (i = 0; i < len; i++) {      pwd += $chars.charAt(Math.floor(Math.random() * maxPos));    }    return pwd;  }  

使用示例:

randomString(5)
"QmwPa"

2.日期加减--天数,格式:2016-09-02

var time = new Date();  function AddDays(date,days){  var nd = new Date(date);     nd = nd.valueOf();     nd = nd + days * 24 * 60 * 60 * 1000;     nd = new Date(nd);     //alert(nd.getFullYear() + "年" + (nd.getMonth() + 1) + "月" + nd.getDate() + "日");      var y = nd.getFullYear();      var m = nd.getMonth()+1;      var d = nd.getDate();      if(m <= 9) m = "0"+m;      if(d <= 9) d = "0"+d;       var cdate = y+"-"+m+"-"+d;      return cdate;  }  

使用示例:

AddDays(time,3)
"2016-09-01"

3.日期加减--月份

function AddMonth(date, num) {              var sDate = new Date();        var arr = date.split('-')          if (arr.length == 3) {            sDate = new Date(arr[0] + '-' + arr[1] + '-' + arr[2]);          }                  var sYear = sDate.getFullYear();        var sMonth = sDate.getMonth() + 1;        var sDay = sDate.getDate();           var eYear = sYear;        var eMonth = sMonth + num;        var eDay = sDay;        while (eMonth > 12) {          eYear++;          eMonth -= 12;        }           var eDate = new Date(eYear, eMonth - 1, eDay);           while (eDate.getMonth() != eMonth - 1) {          eDay--;          eDate = new Date(eYear, eMonth - 1, eDay);        }                     var y = eDate.getFullYear();                  var m = eDate.getMonth()+1;                  var d = eDate.getDate();                  if(m <= 9) m = "0"+m;                  if(d <= 9) d = "0"+d;                   var cdate = y+"-"+m+"-"+d;        return cdate;      }  
示例:

AddMonth("2016-08-29",5)
"2017-01-29"

4.日期相加:

/*   *---------------  DateAdd(interval,number,date)  -----------------   *  DateAdd(interval,number,date)    *  功能:实现VBScript的DateAdd功能.   *  参数:interval,字符串表达式,表示要添加的时间间隔.   *  参数:number,数值表达式,表示要添加的时间间隔的个数.   *  参数:date,时间对象.   *  返回:新的时间对象.   *---------------  DateAdd(interval,number,date)  -----------------   */  function  DateAdd(interval,number,date)   {         switch(interval)       {           case  "y"  :  {               date.setFullYear(date.getFullYear()+number);               var y = date.getFullYear();                          var m = date.getMonth()+1;                          var d = date.getDate();                          if(m <= 9) m = "0"+m;                          if(d <= 9) d = "0"+d;                           var cdate = y+"-"+m+"-"+d;              return  cdate;               break;           }           case  "m"  :  {               date.setMonth(date.getMonth()+number);                          var y = date.getFullYear();                          var m = date.getMonth()+1;                          var d = date.getDate();                          if(m <= 9) m = "0"+m;                          if(d <= 9) d = "0"+d;                           var cdate = y+"-"+m+"-"+d;              return  cdate;               break;           }           case  "d"  :  {               date.setDate(date.getDate()+number);               var y = date.getFullYear();                          var m = date.getMonth()+1;                          var d = date.getDate();                          if(m <= 9) m = "0"+m;                          if(d <= 9) d = "0"+d;                           var cdate = y+"-"+m+"-"+d;              return  cdate;               break;           }            }   }  
//示例:

当前日期为:2016-08-29
var  now  =  new  Date(); 
DateAdd("m",5,now);
"2017-01-29"
var  now  =  new  Date(); 
DateAdd("y",1,now);
"2017-08-29"
var  now  =  new  Date(); 
DateAdd("d",3,now);
"2016-09-01"

5.日期比较--天数
function DateDiff(d1, d2) {      var day = 24 * 60 * 60 * 1000;      try {          var dateArr = d1.split("-");          var checkDate = new Date();          checkDate.setFullYear(dateArr[0], dateArr[1] - 1, dateArr[2]);          var checkTime = checkDate.getTime();              var dateArr2 = d2.split("-");          var checkDate2 = new Date();          checkDate2.setFullYear(dateArr2[0], dateArr2[1] - 1, dateArr2[2]);          var checkTime2 = checkDate2.getTime();              var cha = (checkTime - checkTime2) / day;          return cha;      } catch(e) {          return false;      }  }  

示例:

DateDiff("2016-08-29","2016-08-27");
2

6.随机数 在某个范围内

function RandomMath (begin,end){   return (Math.floor(Math.random()*(end-begin))+begin);  }  

示例:

RandomMath(20,30)

23

7.如果有2个或更多元素的文本內容包含:文本、文本輸入框,准确定位到文本
function getElementByText(obj,text) {      var element;      for(var a=0;a<obj.length;a++){              var objtext= obj[a].innerHTML;                          if(objtext.trim() == text){          element=obj[a];        }      }       return element;  };  

示例:

csdn首页中查找“华为云计算”元素

var obj=jQuery("div.submenu a:contains('云计算')");
getElementByText(obj,"华为云计算");

备注:

另外通过filter来查找:jQuery("div.submenu a:contains('云计算')").filter(function(index){  return   $(this).text() == '云计算'; })  如果需要对元素进行click操作需要加下标:  jQuery("div.submenu a:contains('云计算')").filter(function(index){  return   $(this).text() == '云计算'; })[0].click();  
8.通过javascript移动滚动条

浏览器顶部:document.body.scrollTop =0;  浏览器底部:document.body.scrollTop = document.body.scrollHeight; 
9.通过Javascript休眠等待
function sleep(numberMillis) {      var now = new Date();      var exitTime = now.getTime() + numberMillis*1000;      while (true) {          now = new Date();          if (now.getTime() > exitTime) return;      }  }  

参考文献:

http://blog.csdn.NET/sat472291519/article/details/18077005

http://www.jb51.net/article/66132.htm






原创粉丝点击