用正则表达式实现html编码(转义)
function htmlEncodeByRegExp(str) {
var temp = "";
if (str.length == 0) return "";
temp = str.replace(/&/g, "&");
temp = temp.replace(/</g, "<");
temp = temp.replace(/>/g, ">");
temp = temp.replace(/\s/g, " ");
temp = temp.replace(/\'/g, "'");
temp = temp.replace(/\"/g, """);
return temp;
}
用正则表达式实现html解码(反转义)
function htmlDecodeByRegExp(str) {
var temp = "";
if (str.length == 0) return "";
temp = str.replace(/&/g, "&");
temp = temp.replace(/</g, "<");
temp = temp.replace(/>/g, ">");
temp = temp.replace(/ /g, " ");
temp = temp.replace(/'/g, "\'");
temp = temp.replace(/"/g, "\"");
return temp;
}
千分符-格式化金钱
方法1:
var thousandNum = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
var money = thousandNum(20190214); // "20,190,214"
方法2:
var money = thousandNum(20190214); // "20,190,214"
function thousandNum(num){
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
生成星级评分
方法1:
var startScore = rate => "★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);
var start = startScore(3); // "★★★"
方法2:
var start = startScore(3); // "★★★"
function startScore(rate){
return "★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);
}
根据生日计算年龄
function getAge(dateString) {
var today = new Date();
var birthDate = new Date(dateString);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
判断一个数组中是否含有某个对象(必须是数组中的某一项),如果存在就删掉
var arr = [{name:'wang',age:18},{name:'zhu',age:21}];
var obj = {name:'zhu',age:21};
var newarr = removeAaary(arr,obj);
console.log(newarr);
// [
// {name:'wang',age:18}
// ]
function removeAaary(_arr, _obj) {
for (var i = 0; i < _arr.length; i++) {
if (JSON.stringify(_arr[i]) == JSON.stringify(obj)) {
if (i == 0) {
_arr.shift(); //删除并返回数组的第一个元素
return _arr;
}
else if (i == length - 1) {
_arr.pop(); //删除并返回数组的最后一个元素
return _arr;
}
else {
_arr.splice(i, 1); //删除下标为i的元素
return _arr;
}
}
}
}
删除数组对象中的空对象
var arr = [{name:'1',age:'12'},{},{name:'2',age:'87'},{},{name:'3',age:'45'},{}]
for (var i = 0; i < arr.length; i++) {
if (JSON.stringify(arr[i]) == "{}") {
arr.splice(i, 1);
i = i - 1;
}
}
console.log(arr)
数组对象合并并去重
let json1=[
{id:1,name:"aaa"},
{id:2,name:"bbb"},
{id:3,name:"ccc"},
]
let json2=[
{id:1,name:"aaa"},
{id:2,name:"bbb"},
{id:4,name:"ddd"},
]
let json = json1.concat(json2); //两个数组对象合并
let newJson = []; //盛放去重后数据的新数组
for(var item1 in json){ //循环json数组对象的内容
let flag = true; //建立标记,判断数据是否重复,true为不重复
for(var item2 in newJson){ //循环新数组的内容
if(json[item1].id == newJson[item2].id){ //让json数组对象的内容与新数组的内容作比较,相同的话,改变标记为false
flag = false;
}
}
if(flag){ //判断是否重复
newJson.push(json[item1]); //不重复的放入新数组。 新数组的内容会继续进行上边的循环。
}
}
console.log("newJson",newJson);
给数组对象中相同的属性值分组
var arr = [
{"id":"1","groupname":"值1","value":"11"},
{"id":"2","groupname":"值1","value":"22"},
{"id":"3","groupname":"值2","value":"33"},
{"id":"4","groupname":"值2","value":"44"},
{"id":"5","groupname":"值3","value":"55"},
{"id":"6","groupname":"值3","value":"66"}
];
var map = {},dest = [];
for(var i = 0; i < arr.length; i++){
var ai = arr[i];
if(!map[ai.groupname]){
dest.push({
groupname: ai.groupname,
item: [ai]
});
map[ai.groupname] = ai;
}else{
for(var j = 0; j < dest.length; j++){
var dj = dest[j];
if(dj.groupname== ai.groupname){
dj.item.push(ai);
break;
}
}
}
}
console.log(dest); //打印结果如下
// [
// {
// "groupname": "值1",
// "item": [
// {"id": "1", "groupname": "值1", "value": "11"},
// { "id": "2", "groupname": "值1", "value": "22"}
// ]
// },
// {
// "groupname": "值2",
// "item": [
// {"id": "3", "groupname": "值2", "value": "33"},
// { "id": "4", "groupname": "值2", "value": "44"}
// ]
// },
// {
// "groupname": "值3",
// "item": [
// {"id": "5", "groupname": "值3", "value": "55"},
// { "id": "6", "groupname": "值3", "value": "66"}
// ]
// }
// ]
找数组差集
var arr1 = [1,2,3,4];
var arr2 = [1,2];
diffSet(arr1, arr2);
console.log(diffSet(arr1, arr2)); //[3,4]
function diffSet(arr1, arr2) {
var set2 = new Set(arr2);
var subset = [];
arr1.forEach(function(val, index) {
if (!set2.has(val)) {
subset.push(val);
}
});
return subset;
};
找数组对象差集
var arr1 = [{nodeNo:'12'},{nodeNo:'13'},{nodeNo:'14'}];
var arr2 = [{nodeNo:'13'},{nodeNo:'14'}];
var arr3 = arr1.concat(arr2);
var newarr = [];
var arr1v = [];
for(var i = 0; i < arr1.length; i++){
arr1v.push(arr1[i].nodeNo);
}
var arr2v = [];
for(var j = 0; j < arr2.length; j++){
arr2v.push(arr2[j].nodeNo);
}
for(var i = 0; i < arr3.length; i++){
if(arr1v.indexOf(arr3[i].nodeNo) == -1 || arr2v.indexOf(arr3[i].nodeNo) == -1){
newarr.push(arr3[i]);
}
}
console.log(newarr); //[{nodeNo:'12'}]
找两个数组对象交集
var arr1 = [{ name: 'name1', id: 1 }];
var arr1Id = [];
for(var i = 0; i < arr1.length; i++){
arr1Id.push(arr1[i].id);
}
var arr2 = [{ name: 'name1', id: 1 }, { name: 'name2', id: 2 }];
var result = arr2.filter(function (v) {
return arr1Id.indexOf(v.id) !== -1
})
console.log(result); //[{ name: 'name1', id: 1 }]
找两个数组的交集
var c = a.filter(function(v){ return b.indexOf(v) > -1 })
数组对象根据某个属性 - 升序排序
// console.log(arr.sort(ascCompare('age')))
function ascCompare(property){
return function (a, b) {
return a[property] > b[property] ? 1 : -1;
}
}
数组对象根据某个属性 - 降序排序
// console.log(arr.sort(descCompare('age')))
function descCompare(property){
return function (a, b) {
return a[property] < b[property] ? 1 : -1;
}
}
日期格式化
Fri Feb 19 17:17:39 CST 2021 -> 2021-02-19 17:17:39
var datetime = formatDate('Fri Feb 19 17:17:39 CST 2021','yyyy-MM-dd HH:mm:ss');
function formatDate(date,format){
if(null==date || ""==date){
return "";
}
if(date==''||date==null){
return '';
}
date = new Date(date);
date.setHours(date.getHours()-14);
var o = {
'M+' : date.getMonth() + 1, //month
'd+' : date.getDate(), //day
'H+' : date.getHours(), //hour
'm+' : date.getMinutes(), //minute
's+' : date.getSeconds(), //second
'q+' : Math.floor((date.getMonth() + 3) / 3), //quarter
'S' : date.getMilliseconds() //millisecond
};
if (/(y+)/.test(format)){
format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in o){
if (new RegExp('(' + k + ')').test(format)){
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
}
}
return format;
}
获取两个日期相差月数
function diffMonths(start,end){
var date1 = start.split('-');
var date2 = end.split('-');
var year_month = (parseInt(date2[0])-parseInt(date1[0]))*12;
var months = parseInt(date2[1])-parseInt(date1[1]);
return year_month + months;
}
获取明年今天时间
function getTomrTodayDateTime() {
var now = new Date();
var year = now.getFullYear()+1;
var mth = now.getMonth();
var day = now.getDate();
var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds();
var month = mth + 1;
if (month < 10) month = '0' + month;
if (day < 10) day = '0' + day;
if (h < 10) h = '0' + h;
if (m < 10) m = '0' + m;
if (s < 10) s = '0' + s;
var str = year + '-' + month + '-' + day + ' ' + h + ':' + m + ':' + s;
return str;
}
获取某一天
type | 0:当天,-1:上个月,1:下个月
function getXmonthToday(type) {
var now = new Date(); // 可以传值调式 now = new Date(2019,2,30); 今天是3月30号
var year = now.getFullYear();//getYear()+1900=getFullYear()
var month = now.getMonth() + 1;//0-11表示1-12月
var day = now.getDate(); // 当天日期
if (parseInt(month) < 10) month = "0" + month;
if (parseInt(day) < 10) day = "0" + day;
now = year + '-' + month + '-' + day; // 如果取当月日期可直接 return 返回
var preMonth = parseInt(month) - 1;
preMonth = preMonth < 10 ? '0' + preMonth : preMonth; // 获取上个月的值
var nextMonth = parseInt(month) + 1;
nextMonth = nextMonth < 10 ? '0' + nextMonth : nextMonth; // 获取下个月的值
if (parseInt(month) == 1 && type == -1) {//如果是1月份,要上个月 ,则取上一年的12月份
return (parseInt(year) - 1) + '-12-' + day;
} else if (parseInt(month) == 12 && type == 1) { // 如果是12月,要下个月,取下一年的1月
return (parseInt(year) + 1) + '-01-' + day;
}
var preSize = new Date(year, parseInt(month) - 1, 0).getDate();//上月总天数
var nextSize = new Date(year, parseInt(month)+ 1, 0).getDate();//下月总天数
//console.log(preSize, nextSize)
if (preSize < parseInt(day) && type == -1) {// 取上个月,如果上个月总天数小于本月今天,取上个月最后一天
return year + '-' + preMonth + '-' + preSize;
} else if (nextSize < parseInt(day) && type == 1) { // 如果下个月总天数小于本月今天,取下个月最后一天
return year + '-' + nextMonth + '-' + nextSize;
}
if (type == -1) {
return year + '-' + preMonth + '-' + day;
} else if (type == 1) {
return year + '-' + nextMonth + '-' + day;
}else if(type == 0){
return now;
}
}
获取当前月的第一天
function startDayThisMonth(){
var date = new Date();
date.setDate(1);
var month = parseInt(date.getMonth()+1);
var day = date.getDate();
if (month < 10) month = '0' + month;
if (day < 10) day = '0' + day;
return date.getFullYear() + '-' + month + '-' + day;
}
获取当前月的最后一天
function endDayThisMonth(){
var date = new Date();
var currentMonth=date.getMonth();
var nextMonth=++currentMonth;
var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
var oneDay=1000*60*60*24;
var lastTime = new Date(nextMonthFirstDay-oneDay);
var month = parseInt(lastTime.getMonth()+1);
var day = lastTime.getDate();
if (month < 10) month = '0' + month;
if (day < 10) day = '0' + day;
return date.getFullYear() + '-' + month + '-' + day;
}
获取某年某月总天数
function getDaysInOneMonth(y,m){
m = parseInt(m,10);
var day = new Date(y, m, 0);
return day.getDate();
}
获取当天日期 - 年月日
function getTodayTime() {
var now = new Date();
var year = now.getFullYear();
var mth = now.getMonth();
var day = now.getDate();
var month = mth + 1;
if (month < 10) month = '0' + month;
if (day < 10) day = '0' + day;
var str = year + '-' + month + '-' + day;
return str;
}
获取当天日期 - 年月日时分秒
function getTodayDateTime() {
var now = new Date();
var year = now.getFullYear();
var mth = now.getMonth();
var day = now.getDate();
var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds();
var month = mth + 1;
if (month < 10) month = '0' + month;
if (day < 10) day = '0' + day;
if (h < 10) h = '0' + h;
if (m < 10) m = '0' + m;
if (s < 10) s = '0' + s;
var str = year + '-' + month + '-' + day + ' ' + h + ':' + m + ':' + s;
return str;
}
获取上一年/年月/年月日的前n年/年月/年月日
console.log(getStartTime('d')); //昨天
console.log(getStartTime('d',-1)); //前天
// opt:d/m/y
function getStartTime(opt,day) {
var nowDate = new Date();
var now = new Date();
var year = now.getFullYear();
var mth = (now.getMonth());
var str;
if (opt == 'd') { //获取一天前的数据
nowDate.setTime(nowDate.getTime()-24*60*60*1000);
var dYear= nowDate.getFullYear();
var dMonth = nowDate.getMonth()+1;
var dDay = nowDate.getDate();
if('undefined' != typeof(day)){
dDay = nowDate.getDate() + day;
}
if (dMonth < 10) {
dMonth = '0' + dMonth
}
if(dDay< 10){
dDay = '0' + dDay;
}
str = dYear + '-' + dMonth + '-' + dDay;
} else if (opt == 'm') {
if(mth==0){
mth =12;
year = year-1;
}
if (mth < 10) {
mth = '0' + mth;
}
str = year + '-' + mth;
}else if (opt == 'y') {
str = year-1;
}
return str;
}
获取当天/年/年月/年月日
function getEndTime(opt) {
var now = new Date();
var year = now.getFullYear();
var mth = now.getMonth();
var day = now.getDate();
var month = mth + 1;
if (month < 10) {
month = '0' + month
}
if (day < 10) {
day = '0' + day
}
var str;
if (opt == 'd') {
str = year + '-' + month + '-' + day;
} else if (opt == 'm') {
str = year + '-' + month;
}else if (opt == 'y') {
str = year;
}
return str;
}
获取指定日期n天后的日期
// day 传-1表始前一天,传1表始后一天
// date 代表指定的日期,格式:2018-09-27
function getNextDate(date,day) {
var dd = new Date(date);
dd.setDate(dd.getDate() + day);
var y = dd.getFullYear();
var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
return y + "-" + m + "-" + d;
};
返回两个时间之间所有的月份
需要引入<script src="http://cdn.staticfile.org/moment.js/2.24.0/moment.min.js"><script>
console.log(getMonthBetween('2022-11-05', '2023-02-05'));
// ['2022-11', '2022-12', '2023-01', '2023-02']
function getMonthBetween(start, end){
var result = [];
var s = start.split("-");
var e = end.split("-");
var min = new Date();
var max = new Date();
var yearMonthCode;
min.setFullYear(s[0], s[1] * 1 - 1, 1);//开始日期
max.setFullYear(e[0], e[1] * 1 - 1, 1);//结束日期
var curr = min;
while (curr <= max) {
yearMonthCode = moment(curr).format('YYYY-MM')
var month = curr.getMonth();
var str = curr.getFullYear() + "-" + (month);
var s = curr.getFullYear() + "-0";
if (str == s) {
str = curr.getFullYear() + "-1";
}
result.push(yearMonthCode);
curr.setMonth(month + 1);
}
return result;
}
返回两个时间之间所有的日期
console.log(getTimeTwo('2022-04-28', '2022-04-30'));
function getTimeTwo(start, end){
//初始化日期列表,数组
var diffdate = new Array();
var i = 0;
//开始日期小于等于结束日期,并循环
while (start <= end) {
diffdate[i] = start;
//获取开始日期时间戳
var stime_ts = new Date(start).getTime();
//增加一天时间戳后的日期
var next_date = stime_ts + (24 * 60 * 60 * 1000);
//拼接年月日,这里的月份会返回(0-11),所以要+1
var next_dates_y = new Date(next_date).getFullYear() + '-';
var next_dates_m = (new Date(next_date).getMonth() + 1 < 10) ? '0' + (new Date(next_date).getMonth() + 1) + '-' : (new Date(next_date).getMonth() + 1) + '-';
var next_dates_d = (new Date(next_date).getDate() < 10) ? '0' + new Date(next_date).getDate() : new Date(next_date).getDate();
start = next_dates_y + next_dates_m + next_dates_d;
//增加数组key
i++;
}
return diffdate;
}
获取某年某个月一共有多少天
var year = '2022';
var month = 4;
var days = new Date(year,month,0).getDate(); //30
判断两个时间大小
var difftime = getTimeDiff(startT, endT);
console.log(difftime);
// >0 结束时间小于开始时间
// <0 结束时间大于开始时间
window.getTimeDiff = function (start_date, end_date) {
var start_date = new Date(start_date);
var end_date = new Date(end_date);
var difftime = (start_date - end_date) / 1000;
return difftime;
}
两数相加
console.log(accAdd(6,3)); //9
function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}
两数相减
console.log(subtr(6,3)); //3
function subtr(arg1,arg2){
var r1,r2,m,n;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2));
n=(r1>=r2)?r1:r2;
return ((arg1*m-arg2*m)/m).toFixed(n);
}
两数相乘
console.log(accMul(6,3)); //18
function accMul(arg1,arg2){
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}
两数相除
console.log(accDiv(6,3)); //2
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return accMul((r1/r2),pow(10,t2-t1));
}
}
判断是否为整数
console.log(isInteger(1)); //true
console.log(isInteger(1.5)); //false
function isInteger(num){
num = Number(num);
return num%1 === 0
}
强制转换两位小数
console.log(toDecimal2(1.2656)); // 1.27
console.log(toDecimal2(1)); // 1.00
function toDecimal2(x){
var f = parseFloat(x);
if(isNaN(f)){
return false;
}
var f = Math.round(x * 100) / 100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}
获取表单对象
var params = $('#form').serializeObject();
$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
获取地址栏参数
var getParams = getQueryString();
console.log(getParams);
function getQueryString() {
var url = location.search; //获取url中"?"符后的字串
if (url.length > 0) { //判断是否携带参数
var params = {};
if (url.indexOf('?') != -1) {
this.isShwoInput = true;
var str = url.substr(url.indexOf('?') + 1);
var strs = str.split('&');
for (var i = 0; i < strs.length; i++) {
params[strs[i].split('=')[0]] = decodeURI(strs[i].split('=')[1]);
}
}
return params;
}
return null;
}
点击使元素全屏
$('#fullScreen').click(function(){
var dom = document.getElementById('previewDialog');
fullScreenOn(dom);
})
window.fullScreenOn = function(el){
var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen, wscript;
if(typeof rfs != "undefined" && rfs) {
rfs.call(el);
return;
}
if(typeof window.ActiveXObject != "undefined") {
wscript = new ActiveXObject("WScript.Shell");
if(wscript) {
wscript.SendKeys("{F11}");
}
}
}
图片加载失败显示默认图片
<img class='avatar' src='' onerror='nofind(this);'>
方法1:
function nofind(img){
img.src = "/img/fantasy_indexhead.png";
img.onerror = null; //如果错误图片也不存在就会死循环一直跳,所以要设置成null,也可以不加
}
方法2:
$(".avater").one("error", function(e){ //加入相应的图片类名
$(this).attr("src", "/img/fantasy_indexhead.png");
});
判断奇偶 - es6
let OddEven = num => !!(num & 1) ? "odd" : "even";
let num = OddEven(2);
// num => "even"
数组求和
funtion sum(arr){
var s = 0;
if(arr.length == 0){
return 0;
}else if(arr.length == 1){
return arr[0];
}else{
for(var i = 0; i < arr.length; i++){
s += arr[i];
}
return s;
}
}
去重数组
方法1:
let arr = [...new Set([0, 1, 1, null, null])];
// arr => [0, 1, null]
方法2:
function norepeat(a) {
var i = a.length, j, b;
while (i--) {
j = i;
b = false;
while (j--) {
if (a[i] === a[j]) {
a.splice(j, 1);
i--;
b = true;
}
}
if (b) a.splice(i, 1);
}
return a;
}
过滤空值 - es6
let arr = [undefined, null, "", 0, false, NaN, 1, 2].filter(Boolean);
// arr => [1, 2]
取最小最大值 - es6
let arr = [0, 1, 2];
let min = Math.min(...arr);
let max = Math.max(...arr);
// min max => 0 2
满足条件时执行
var flagA = true; // 条件A
var flagB = false; // 条件B
(flagA || flagB) && Func(); // 满足A或B时执行
(flagA || !flagB) && Func(); // 满足A或不满足B时执行
flagA && flagB && Func(); // 同时满足A和B时执行
flagA && !flagB && Func(); // 满足A且不满足B时执行
取整简写
const num1 = ~~ 1.69;
const num2 = 1.69 | 0;
const num3 = 1.69 >> 0;
// num1 num2 num3 => 1 1 1
数组首部插入数组[0]
let arr = [1, 2];
方法1:
arr.unshift(0);
方法2:
arr = [0].concat(arr);
方法3:
arr = [0, ...arr];
方法4:
Array.prototype.unshift.apply(arr, [0]);
合并对象
const obj1 = { a: 0, b: 1, c: 2 };
const obj2 = { c: 3, d: 4, e: 5 };
var obj = $.extend({}, obj1, obj2);
// obj => { a: 0, b: 1, c: 3, d: 4, e: 5 }
地址栏传参编码
var url = "http://example.com/index.html?url=" + encodeURIComponent(myUrl);
地址栏接收参数编码
decodeURIComponent(url.substring(url.indexOf('url=')+4))
微信浏览器中,aler弹框不显示域名
(function(){
//先判断是否为微信浏览器
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
//重写alert方法,alert()方法重写,不能传多余参数
window.alert = function(name){
var iframe = document.createElement("IFRAME");
iframe.style.display="none";
iframe.setAttribute("src", 'data:text/plain');
document.documentElement.appendChild(iframe);
window.frames[0].window.alert(name);
iframe.parentNode.removeChild(iframe);
}
}
})();
DOM添加类
document.querySelector(".room").classList.add("blur");
生成范围随机数
// ----------1-100随机数----------------
Math.floor(Math.random () * 100 + 1)
// ----------60-100随机数----------------
Math.floor(Math.random() * 41 ) + 60
//
const RandomNum = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
const num = RandomNum(1, 10);
倒计时-每1秒减一个数
<b><span id="usernum">5</span> seconds</b>
var t = document.getElementById("usernum");
var sa = setInterval(function(){
--t.innerHTML;
if(t.innerHTML == 120){
clearInterval(sa);
}
document.getElementById("usernum").innerHTML = t;
},1000);
去掉字符串空格
// 去前后空格
str.replace(/(^\s*)|(\s*$)/g, "");
// 去所有空格
str.replace(/\s/g, "");
// 去前空格
str.replace(/(^\s*)/g, "");
// 去后空格
str.replace(/(\s*$)/g, "");
去掉后缀名
function removeSuffix(str){
return str.replace(/\.\w+$/, "");
}
绑定滚动条事件--滚动到某一位置时显示固定导航
$(window).bind("scroll", function () {
var sTop = $(window).scrollTop();
var sTop = parseInt(sTop);
if (sTop >= 350) {
if (!$(".bot_float").is(":visible")) {
try {
$(".bot_float").slideDown();
} catch (e) {
$(".bot_float").show();
}
}
}else {
if ($(".bot_float").is(":visible")) {
try {
$(".bot_float").slideUp();
} catch (e) {
$(".bot_float").hide();
}
}
}
});
随着浏览器往下滚动,根据距离顶部的距离,判断当前选中的导航菜单
$(window).bind("scroll", function () {
var $navs = $('.nav-ul li'), // 导航
$sections = $('.section'), // 模块
$window = $(window),
navLength = $navs.length - 1;
var scrollTop = $window.scrollTop(),
len = navLength;
for (; len > -1; len--) {
var that = $sections.eq(len);
if (scrollTop >= (that.offset().top - 300)) {
$navs.removeClass('yellowi').eq(len).addClass('yellowi');
break;
}
}
});
鼠标放上时向上移动,移开时回到原点
$(".dibiao .tab").mouseover(function(){
$(this).stop().animate({
top:"-10px"
},600);
});
$(".dibiao .tab").mouseout(function(){
$(this).stop().animate({
top:"0px"
},600);
});
点击上移图标上移,点击下移图标下移
// 上移
$(".moveup").click(function () {
var prev = $(this).parent().prev();
$(this).parent().insertBefore(prev);
})
// 下移
$(".movedown").click(function () {
var next = $(this).parent().next();
$(this).parent().insertAfter(next);
})
点击下载图片
$("body").on('click','.download',function(){
var imgSrc = $('.img').attr('src');
downloadImg(imgSrc);
return false;
})
function downloadImg(imgSrc){
var xmlhttp;
xmlhttp = new XMLHttpRequest(); //用于在后台与服务器交换数据
xmlhttp.open("GET", imgSrc, true); //语法 open(method,url,async)
xmlhttp.responseType = "blob"; // 请求返回的数据类型
xmlhttp.onload = function() { //处理返回的数据
if (this.status == 200) {
var blob = this.response;
var a = document.createElement('a');
a.href = window.URL.createObjectURL(blob); //图片地址
a.download = 'down.jpg'; //下载时 图片命名 如果没有默认是下载的图片的路径
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
}
xmlhttp.send(); //用于发送http请求
}
each循环return fasle无效解决方法
var flag = true;
$el.each(function(i){
if(true){
alert("请输入...");
flag = false;
return false;
}
})
if(!flag){
return false;
}