<button id="code" class="btn btn-default" onclick="run(5);">获取校验码</button>
<script>
function run(num){
var btn = document.getElementById('code');
$('#code').attr({"disabled":"disabled"});
var num = num || 10;
var tim = setInterval(function(){
// num > 0 ? num-- :clearInterval(tim);
document.getElementById('code').innerHTML = num + 'miao';
num--;
if(num < 0){
clearInterval(tim);
$("#code").removeAttr("disabled").html("重新获取验证码");
}
},1000);
}
</script>
JS 公共方法
var myJs = {
/**
* 格式化日期
* @param dt 日期对象
* @returns {string} 返回值是格式化的字符串日期
*/
getDates: function(dt){
var str = "";
var dt = new Date();
var year = dt.getFullYear();
var month = dt.getMonth() + 1;
var day = dt.getDate();
var hour = dt.getHours();
var min = dt.getMinutes();
var sec = dt.getSeconds();
month = month < 10 ? "0" + month : month;
day = day < 10 ? "0" + day : day;
hour = hour < 10 ? "0" + hour : hour;
min = min < 10 ? "0" + min : min;
sec = sec < 10 ? "0" + sec : sec;
str = year +'年'+ month +'月'+ day +'日'+ hour +'时'+min+'分'+sec;
return str;
},
/**
* 设置元素的文本内容
* @param element 任意元素
* @param text 任意文本内容
*/
setInnerText: function(element,text){
if(typeof(element.textContent) == "undefined"){
element.innerText = text;
}else{
elemrnt.innerText = text;
}
},
/**
* 获取元素的文本内容
* @param element 任意元素
* @returns {*} 任意元素中的文本内容
*/
getInnerText: function(element){
if(typeof(element.textContent) == "undefined"){
return element.innerText;
}else{
return element.textContent;
}
},
/**
* 获取父级元素中的第一个子元素
* @param element 父级元素
* @returns {*} 父级元素中的子级元素
*/
getFirstElement: function(element){
if(element.firstElementChild){
return element.firstElementChild;
}else{
var node = element.firstChild;
while (node && node.nodeType != 1){
node = node.nextSibling;
}
return node;
}
},
/**
* 获取父级元素中的最后一个子元素
* @param element 父级元素
* @returns {*} 最后一个子元素
*/
getLastElement: function(element){
if(element.lastElementChild){
return element.lastElementChild;
}else{
var node = element.lastChild;
while (node && node.nodeType != 1){
node = node.previousSibling;
}
return node;
}
},
/**
* 获取某个元素的前一个兄弟元素
* @param element 某个元素
* @returns {*} 前一个兄弟元素
*/
getPreviousElement: function(elemrnt){
if(element.previousElementSibling){
return element.previousElementSibling;
}else{
var node = element.previousSibling;
while(node && nodeType != 1){
node = node.previousSibling;
}
return node;
}
},
/**
* 获取某个元素的后一个兄弟元素
* @param element 某个元素
* @returns {*} 后一个兄弟元素
*/
getNextElement: function(element) {
if (element.nextElementSibling) {
return element.nextElementSibling
} else {
var node = element.nextSibling;
while (node && node.nodeType != 1) {
node = node.nextSibling;
}
return node;
}
},
/**
* 获取某个元素的所有兄弟元素
* @param element 某个元素
* @returns {Array} 兄弟元素
*/
getSiblings: function(element) {
if(!element) return;
var elements = [];
var ele = element.previousSibling;
while(ele){
if(ele.nodeType === 1){
elemen.push(ele);
}
ele = ele.previousSibling;
}
ele = element.nextSibling;
while(ele){
if(ele.nodeType === 1){
ele.push(ele);
}
ele = ele.nextSibling;
}
return elements;
},
/**
* 按照比例分割数组,返回分割后的数组
* @param e 某个数组
* @param proportion 分割系数,默认 = 5
* @returns {Array} 分割后的新数组
*/
funData: function(e,proportion){
var proportion = proportion || 5;//按照比例切割
var num = 0;
var _date = [];
for(var i = 0; i < e.length; i++){
if(i % proportion == 0 && i != 0){
_data.push(e.slice(num,i));
num = i;
}
if((i + 1) == e.length){
_data.push(e.slice(num,(i + 1)));
}
}
return _data;
},
// console.log(funData(Array,8));
// 生成漂亮的随机码
// Math.random().toString(16).substring(2);
// Math.random().toString(36).substring(2,6);
// 取数组中最大,最小数
// Math.max.apply(Math,[1,2,3]);
// Math.min.apply(Math,[1,2,3]);
/*去除空格*/
// type 1-所有空格 2-前后空格 3-前空格 4-后空格
trim: function(str, type) {
switch (type) {
case 1:
return str.replace(/\s+/g, "");
case 2:
return str.replace(/(^\s*)|(\s*$)/g, "");
case 3:
return str.replace(/(^\s*)/g, "");
case 4:
return str.replace(/(\s*$)/g, "");
default:
return str;
}
},
//字符串替换(字符串,要替换的字符,替换成什么)
replaceAll: function(str, AFindText, ARepText) {
raRegExp = new RegExp(AFindText, "g");
return str.replace(raRegExp, ARepText);
},
/*数组去重*/
removeRepeatArray: function(arr) {
return Array.from(new Set(arr))
},
// var getFloatStr = function(num){
// num += '';
// num = num.replace(/[^0-9|\.]/g, ''); //清除字符串中的非数字非.字符
// if(/^0+/) //清除字符串开头的0
// num = num.replace(/^0+/, '');
// if(!/\./.test(num)) //为整数字符串在末尾添加.00
// num += '.00';
// if(/^\./.test(num)) //字符以.开头时,在开头添加0
// num = '0' + num;
// num += '00'; //在字符串末尾补零
// num = num.match(/\d+\.\d{2}/)[0];
// return num;
// };
// console.log(getFloatStr(1.23));
getFloatStr :function(num){
num+='';
num = num.replace(/[^0-9\.]/g,'');//清除字符串中的非数字非.字符
if(/^0+/){//清除字符串开头的0
num = num.replace(/^0+/,'');
}
if(!/\./.test(num)){//为整数字符串在末尾添加.00
num += '.00';
}
if(/^\./.test(num)){//字符以.开头时,在开头添加0
num = '0' + num;
}
num += '00';
num = num.match(/\d+\.\d{2}/)[0];
return num;
}
// console.log(getFloatStr(1.23));
};
// 调用
// var dateStr = myJs.getDates(dt);
// 点击任意标签 alert 此标签名
// document.onclick = function(e){
// var e = e || window.event;
// var m = e.target || e.srcElement;
// alert(m.tagName);
// if(m...){
// do something...
// }
// }
/**
* 获取指定的URL参数值
* URL:http://www.quwan.com/index?name=tyler
* 参数:paramName URL参数
* 调用方法:getParam("name")
* 返回值:tyler
*/
function getParam(name) {
// 正则:[找寻'&' + 'url参数名字' = '值' + '&']('&'可以不存在)
let reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
let r = window.location.search.substr(1).match(reg);
if(r != null) {
// 对参数值进行解码
return unescape(r[2]);
}
return null;
}
// 调用方法,注意需要传入String类型的数据,输出结果为String类型
getParam('name'); // '123'
/**
* 数组、对象去重
* @param {*操作的数组} arr
* @param {*对象去重类型} type
*/
function distenic(arr,type){
if(!arr.length){
return arr;
}else{
if(type){
var obj = {};
var newArr = arr.reduce((cur,next) =>{
obj[next[type]] ? " " : obj[next[type]] = true && cur.push(next);
return cur;
},[])
return newArr;
}else{
return Array.from(new Set(arr))
}
}
}