• 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() // 后面加
     

    @

    -------博客内容仅用于个人学习总结-------
  • 相关阅读:
    table的好处
    python使用split分隔字符串之后打印出来是乱码的问题
    关于python项目使用tornado框架时,加载不上静态资源(css/js)并报编码错误的问题
    马的遍历
    数据结构学习资料
    操作系统学习资料
    珠心算测验 C / C++
    拼数 C/C++
    神奇的幻方
    工艺品制作(多维数组应用)
  • 原文地址:https://www.cnblogs.com/DarGi2019/p/11763600.html
Copyright © 2020-2023  润新知