前端记录(js,jq篇)

1. 禁用自动填充:

 $("input").attr("autocomplete", "off");

2. 获取url参数:

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i = 0; i < vars.length; i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return false;
}
// var tempName = decodeURIComponent(getQueryVariable('tempName')); // 获取中文示例

3. 获取三个月之前的时间 然后日期转为时间戳:

//获取三个月之前的时间 然后日期转为时间戳
function getThreeMonths(time) {
  // let timeOne = new Date(1575158521000)
  let timeOne = new Date()
  let year = time.substring(0, 4)
  let month = time.substring(5, 7)
  let day = time.substring(8, 10)
  // 计算3个月后的月份
  let ThreeMonths = month - 3
  // 如果小于 0 说明是去年
  if (ThreeMonths <= 0) {
    year = year - 1
  }
  // 如果 等于 -2 说明当前月是 1 月份 所以三个月前是去年 10月
  if (ThreeMonths === -2) {
    ThreeMonths = 10
  }
  // 如果 等于 -2 说明当前月是 2 月份 所以三个月前是去年 11月
  if (ThreeMonths === -1) {
    ThreeMonths = 11
  }
  // 如果 等于 -2 说明当前月是 3 月份 所以三个月前是去年 12月
  if (ThreeMonths === 0) {
    ThreeMonths = 12
  }
  // 获取当前的时间的日期字符串
  // **如果天数的值为零,则默认返回当前月份的最后一天
  let timeTow = new Date(year, ThreeMonths, 0)
  // 获取三个月前的最后一天
  let ThreeMonthsDay = timeTow.getDate()
  // 判断如果当前月份的天数大于三个月前的天数时,则当前天数等于三个月前的天数
  if (day > ThreeMonthsDay) {
    day = ThreeMonthsDay
  }
  //天数补0
  day < 10 ? "0" + day: day;
  // 格式化时间
  const THREE_MONTHS_AGO = `${year}/${ThreeMonths}/${day}`

  console.log(THREE_MONTHS_AGO)
  // 生成时间戳
  const THREE_STAMP = new Date(THREE_MONTHS_AGO).getTime()
  return THREE_STAMP
}
// console.log(transdate('2020-04-28'))

4. 查找、添加和移除 p 元素中的 id 属性:

	//查找
	$('p').attr('id')
	//添加
	$('p').attr('id','data')
	//移除
	$('p').removeAttr('id')

5. localStorage 本地存储、获取和移除:

	//存储
	localStorage.setItem("loginReg", JSON.stringify(loginReg));
	//获取
	JSON.parse(localStorage.getItem("loginReg"));
	//全部移除
	localStorage.clear();
	//指定移除
	localStorage.removeItem("loginReg")

6. JavaScript返回到上一页的三种方法:

	window.history.go(-1); //返回上一页
	window.history.back(); //返回上一页
	window.location.go(-1); //刷新上一页

7. 后台返回图片文件预览(后台二进制文件流预览),img图片和pdf文件预览:

	//PDF
	var url = 'xxxxxxxx'
    var xhr = new XMLHttpRequest();
    xhr.open("post", url);
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
    xhr.responseType = "blob";
    xhr.send("fileId=" + xxxxxxx);//参数
    xhr.onload = function () {
      if (this.status == 200) {
          var blob = this.response;
          var binaryData = []
          binaryData.push(blob)
          var src = window.URL.createObjectURL((new Blob(binaryData, { type: "application/pdf" }))) + '#toolbar=0&navpanes=0&scrollbar=0'
     	}
  	}

	//jpg,png...
	var url = 'xxxxxxxx'
    var xhr = new XMLHttpRequest();
    xhr.open("post", url);
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
    xhr.responseType = "blob";
    xhr.send("fileId=" + xxxxxxx);//参数
    xhr.onload = function () {
      if (this.status == 200) {
          var blob = this.response;
          var src = window.URL.createObjectURL(blob)
     	}
  	}

8. jquery添加!important样式

	$("span").css("cssText","background-color:red !important");

9. 日期格式处理(‘2019-04-07T16:00:00.000+0000’转成‘年-月-日 时:分:秒’)

// -------------------------------------------日期格式处理
function myTime(date) {
  var arr = date.split("T");
  var d = arr[0];
  var darr = d.split("-");

  var t = arr[1];
  var tarr = t.split(".000");
  var marr = tarr[0].split(":");

  var dd =
    parseInt(darr[0]) +
    "/" +
    parseInt(darr[1]) +
    "/" +
    parseInt(darr[2]) +
    " " +
    parseInt(marr[0]) +
    ":" +
    parseInt(marr[1]) +
    ":" +
    parseInt(marr[2]);
  return dd;
}
// 数字补0操作
function addZero(num) {
  return num < 10 ? "0" + num : num;
}

function formatDateTime(date) {
  var time = new Date(Date.parse(date));
  time.setTime(time.setHours(time.getHours() + 8));
  var Y = time.getFullYear() + "-";
  var M = this.addZero(time.getMonth() + 1) + "-";
  var D = this.addZero(time.getDate()) + " ";
  var h = this.addZero(time.getHours()) + ":";
  var m = this.addZero(time.getMinutes()) + ":";
  var s = this.addZero(time.getSeconds());
  return Y + M + D + h + m + s;
}

// var time1 = "2019-04-07T16:00:00.000+0000";
// console.log(formatDateTime(myTime(time1)));

10. jQuery添加DOM元素:

append() - 在被选元素的结尾插入内容
prepend() - 在被选元素的开头插入内容
after() - 在被选元素之后插入内容
before() - 在被选元素之前插入内容
//示例: $("p").append("xxxxx");

11. 日期转换为时间戳:

unction timeStamp(time){
    var date = new Date();
    date.setFullYear(time.substring(0, 4));
    date.setMonth(time.substring(5, 7) - 1);
    date.setDate(time.substring(8, 10));
    date.setHours(time.substring(11, 13));
    date.setMinutes(time.substring(14, 16));
    date.setSeconds(time.substring(17, 19));
    return Date.parse(date) / 1000;
}
console.log(timeStamp("2020-05-15 15:14:30"));

12. 函数防抖和节流:

函数防抖:当持续触发某事件时,一定时间间隔内没有再触发事件时,事件处理函数才会执行一次,如果设定的时间间隔到来之前,又一次触发了事件,就重新开始延时。

函数节流:当持续触发事件时,有规律的每隔一个时间间隔执行一次事件处理函数。

13. JQuery 中 is(’:visible’) 解析及用法:

if ($(this).is(':visible')) {
//如果ANSWER 为可见,:visible是可见的意思,相关用法还有:hidden(隐藏),:first(第一个),:last(最后一个)   
    $(this).slideUp();//以向上滑动方式隐藏 
} else {   
    $(this).slideDown();//以向下滑动方式显示 
}   

14. JQuery 中 .appendTo 解析及用法:

//在每个 p 元素结尾插入内容
$("<b>Hello World!</b>").appendTo("p");

15. 深拷贝和浅拷贝的概念及深拷贝的方法:

1、浅拷贝
    概念:子对象复制父对象,父子对象发生关联,两者属性值指向同一内存空间。简单来讲,就是改变其中一个对象,另一个对象也会跟着改变。
2、深拷贝
     概念:拷贝对象各个层级的属性。简单的讲,就是复制出来的每个对象都有属于自己的内存空间,不会互相干扰。
3、深拷贝的方法

let listArr=[1,2,3,4];
let list=[];
Object.assign(list,listArr);
console.log(list);
listArr.push(5);
console.log("我是原来的"+listArr+",我是现在的"+list);

16. 数组去重、数组合并:

let finalList = [{ id: 1, name: '小明' }, { id: 2, name: '小红' }, { id: 3, name: '小黄' }]
let finalListTwo = [{ id: 4, name: '小蓝' }, { id: 5, name: '小绿' }, { id: 6, name: '小黄' }]
//数组合并
let res = finalListTwo.concat(finalList)
console.log(res)
//数组去重--1
let obj = {}
let newArr = []
newArr = res.reduce((item, next) => {
    obj[next.name] ? ' ' : obj[next.name] = true && item.push(next)
    return item
}, [])
//数组去重--2
const arr = ['张三','张三','李四']
let set = new Set(arr); // set 自带去重
// Set { '张三', '李四' }
console.log(set);
console.error(Array.from(set)); // [ '张三', '李四' ]

17. 把RGB颜色转换为16进制颜色:

function colorRGBtoHex(color) {
  var rgb = color.split(',');
  var r = parseInt(rgb[0].split('(')[1]);
  var g = parseInt(rgb[1]);
  var b = parseInt(rgb[2].split(')')[0]);
  var hex = "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
  return hex;
}

18. js数组与字符串的相互转换方法:

一、数组转字符串
需要将数组元素用某个字符连接成字符串,示例代码如下:
var a, b;
a = new Array(0,1,2,3,4);
b = a.join("-");

二、字符串转数组
实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下:
var s = "abc,abcd,aaa";
var ss = s.split(",");// 在每个逗号(,)处进行分解。
//字符串截取
ss[0].slice(0, 1) //console.log('a')
//0和1代表的是索引(包前不包后)

19. jquery怎么获取当前元素的兄弟元素:

$('#id').siblings() //当前元bai素所有的兄弟du节zhi点
$('#id').prev() //当前元素前一个兄弟节点
$('#id').prevAll() //当前元素之dao前所有的兄弟节点
$('#id').next() //当前元素之后第一个兄弟节点
$('#id').nextAll() //当前元素之后所有的兄弟节点

20. 对比两个对象,查出其中不同的值:

var obj1 = { id: 1, item: 0 }
var obj2 = { id: 1, item: 2 }
function isObjEqual(o1, o2) {
  var props1 = Object.getOwnPropertyNames(o1);
  var Carr = []
  for (var i = 0, max = props1.length; i < max; i++) {
    var propName = props1[i];
    if (o1[propName] != o2[propName]) {
      Carr.push(propName)
    }
  }
  return Carr
}
console.log(isObjEqual(obj1,obj2)) //item

21. 控制右侧滚动条滑到指定位置:

scrollTo(0,100)
第一个参数:宽度的滚动条
第二个参数:高度的滚动条

22. jQuery判断当前元素是第几个元素:

$("ul li").click(function () {
    var index = $("ul li").index(this);
    console.log(index);
 });

23. js实现获取两个日期之间所有日期的方法:

var intervalTimeS = []//日期数组
Date.prototype.format = function () {
    var s = '';
    s += this.getFullYear() + '-';          // 获取年份。
    s += (this.getMonth() + 1) + "-";         // 获取月份。
    s += this.getDate();                 // 获取日。
    return (s);                          // 返回日期。
};

function getAll(begin, end) {
    var ab = begin.split("-");
    var ae = end.split("-");
    var db = new Date();
    db.setUTCFullYear(ab[0], ab[1] - 1, ab[2]);
    var de = new Date();
    de.setUTCFullYear(ae[0], ae[1] - 1, ae[2]);
    var unixDb = db.getTime();
    var unixDe = de.getTime();
    for (var k = unixDb; k <= unixDe;) {
        intervalTimeS.push((new Date(parseInt(k))).format())
        k = k + 24 * 60 * 60 * 1000;
    }
}
console.log(intervalTimeS)

22. jQuery判断input是否禁用:

$(this).is(":disabled");  // true / false
$(this).prop("disabled"); // true / false
$(this).attr("disabled"); // disabled / undefined
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值