JS相关笔记(一)JQ

JQ API中文文档:

  https://www.jquery123.com/

ajax请求不读取缓存

$(document).ready(function () {
    $.ajaxSetup({ cache: false });          //ajax请求不读取缓存
})

 也可以

url: 我的url+Date.parse(new Date()), //数据接口,

 数组相同的判断:

  let flag = true
    const listA = [1, 2, 3]
    const listB = [2, 3, 4]
    if (listA.length !== listB.length) {
      flag = false
    } else {
      listA.forEach(item => {
        if (listB.indexOf(item) === -1) {
          flag = false
        }
      })
    }

 数组重叠验证

/**判断 是否有重复*/
balabala.ckPart=function (arr,arr1,start,end){
    var flag=true;
    if(arr.length!=0){
        for(var i=0;i<arr.length;i++){
            if(!ck(start,end,arr[i],arr1[i])){//重复
                flag=false;
            }
        }
    }
    return flag;
}

//判断是否有重叠
function ck(start,end,start1,end1){
    if(max(start,start1)<=min(end,end1)){
        return false;//重复
    }else{
        return true;//不重复
    }
}
//取大
function max(a,b){
    if(parseInt(a)<parseInt(b)){
        return parseInt(b);
    }else{
        return parseInt(a);
    }
}
//取小
function min(a,b){
    if(parseInt(a)>parseInt(b)){
        return parseInt(b);
    }else{
        return parseInt(a);
    }
}

数组中是否有重复元素

function repeat(list){
        var len = list.length;
        $.unique(list);
        if(list.length!=len){
            return true;
        }
    }

 深度复制数组:

var newList=$.extend(true,[],list);

创建1-100的数组

Array.from(Array(100), (v,k) => k+1);

数组按大小排序

arr.sort(function(e,r){return r-e});

时间+n天

//加n天
function addDate(date,n){
    var d=new Date(date);
    newDate=d.setDate(d.getDate()+n);
    dt=new Date(newDate);
    var m=dt.getMonth()+1;
    if(m<10){
        m='0'+m;
    }
    var day=dt.getDate();
    if(day<10){
        day='0'+day
    }
    return dt.getFullYear()+'-'+m+'-'+day;
}

时间格式化:

// 时间格式化
    function dateFtt(fmt,date) {
        var o = {
            "M+" : date.getMonth()+1,                 //月份
            "d+" : date.getDate(),                    //
            "h+" : date.getHours(),                   //小时
            "m+" : date.getMinutes(),                 //
            "s+" : date.getSeconds(),                 //
            "q+" : Math.floor((date.getMonth()+3)/3), //季度
            "S"  : date.getMilliseconds()             //毫秒
        };
        if(/(y+)/.test(fmt))
            fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
        for(var k in o)
            if(new RegExp("("+ k +")").test(fmt))
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
        return fmt;
    }
var today = new Date();
var Time = dateFtt("yyyy-MM-dd hh:mm:ss",today)

select 动态添加option;

balabala.balabala=function(){
    layui.use('form',function(){
     var form = layui.form;
    $.ajax({
        url: 我的请求接口,
        type: 'post',
        dataType: 'json',
        async:false,
        data: {hehe:$('#hehe').val()},
        success:function(data){
              var balabalaName= document.getElementById("balabalaName");    
              for(var i=0;i<data.length;i++){
                  var option = document.createElement("option");
                  option.innerHTML = data[i].name;
                  option.value = data[i].id;
                  balabalaName.appendChild(option);
              }
              layui.form.render();
        },    
    });
    });
}

 form 表单序列化提交

  返回拼接的字符串:

var params = $("#form").serialize();

   返回数组:

var arr = $("#form").serializeArray()

   返回Json:通过arr 拼接一个

         参考与使用: var params = $("#form").serializeObject();

layui.use(['table', 'form','laydate', 'ax' ], function () {
    var $ = layui.jquery;
    var form = layui.form;
   
    $.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;
    };

});
View Code

   iframe 嵌套时调用 :

父级 调用 子页面元素:

$('#父iframe的id').contents().find('想要的掉的比如.layui-tab[lay-filter=' + w + ']')

子页面 调用 父页面元素:

$(父页面的元素选择器, window.parent.document);
$('.layui-tab-title .layui-this .layui-tab-close', window.parent.document).trigger('click');

某个div高度自适应:看需求 也可以把style 中的 height 换成 min-height 这样在这个div 里背景颜色就会随着窗口高度改变了

var box_height=$(window).height();// 屏幕高度
var real_height = box_height - 100;
$('#box').attr('style','height:'+real_height+'px;');
// 重置大小 $(window).resize(
function () { var box_height=$(window).height();// 屏幕高度 var real_height = box_height - 100; $('#box').attr('style','height:'+real_height+'px;'); });

 向数组前面加 元素

result.unshift({type: 'checkbox'});//在前面加
result.push({type: 'checkbox'});//在后面加

关于前台本地缓存:localStorage

localStorage.setItem("elementName",elementName);//
localStorage.removeItem("elementName");//
window.addEventListener("storage", function (e) {
        alert(e.newValue);
});//监听

 监听input:

$("#id").on("input",function(e){
    //获取input输入的值
    console.log(e.delegateTarget.value);
  });

 从数组中删除

var delIndex=$.inArray(parseInt(index),list);
list.splice(delIndex,1);

 遍历对象中的属性:

$.each(obj, function(i, val) {
            var text =  "Key:" + i + ", Value:" + val;
            console.log(text);
});

 测试(计算)方法的执行速度

console.time() // 前面加
console.timeEnd() // 后面加

 

 

 

 

@

posted @ 2020-05-21 09:20  DarGi  阅读(189)  评论(0编辑  收藏  举报