![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
lixiaonaaa
写bug的
展开
-
修改bootstrapTable(refresh)时候刷新的请求参数
monthPlanTable.getTableObj().bootstrapTable('refresh')默认请求数据{"sortOrder":"ASC","pageSize":10,"pageNumber":1}有时候跟我们后台接口参数名称有点区别,需要重新设置,方法如下:monthPlanTable.getTableObj().bootstrapTable('refresh',{ query: {pageSize: 12,pageNum:1,yearPlanId:yearPlanId}})转载 2022-03-04 13:24:12 · 1214 阅读 · 0 评论 -
js给元素添加css样式,加important不生效问题
需要在js里设置css样式,加important,发现并不生效,甚至样式都没有加上:// 点击事件 myChart.on('click', function(params) { var color = params.color; var id = params.data.id; $(`tr[data-uniqueid="${id}"]`).css('background', color+'!important'); })后来发现这样写是正确的:// 点击事件.原创 2022-01-24 13:30:11 · 2562 阅读 · 0 评论 -
iframe父子页面互相调用方法、获取变量、获取元素
每次iframe父子页面交互的时候总是现查,总也记不住,所以今天来详细记载一下。以下均为jquery 写法。1、iframe子页面调用父页面(1)方法parent.func()(2)变量parent.value(3)jquery元素$("div",parent.document)2、父页面调用iframe子页面(1)方法$("#childrenIframeId").eq(0)[0].contentWindow.func();(2)变量$("#ch原创 2021-12-22 09:34:16 · 3688 阅读 · 0 评论 -
销毁iframe
读到篇文章,mark一下。iframe src不设置为about:blank,内存不会释放掉,还必须用 iframe.document.write(''); 这样才能将内容清空但是这样处理之后任然会有500-1000K左右的内存残留,这就是ie6的iframe bug,动态创建的iframe总会耗费掉一些内存。function clearIframe(id){var el = document.getElementById(id),iframe = el.contentWind转载 2021-12-17 15:59:13 · 3567 阅读 · 0 评论 -
JS 获取浏览器窗口大小
常用:JS 获取浏览器窗口大小// 获取窗口宽度if (window.innerWidth)winWidth = window.innerWidth;else if ((document.body) && (document.body.clientWidth))winWidth = document.body.clientWidth;// 获取窗口高度if (window.innerHeight)winHeight = window.innerHeight;els转载 2021-11-24 13:21:56 · 8137 阅读 · 0 评论 -
用html自定义横向条形图
// 进度条图表function progressCharts(interfaceCharts, list) { var html = '<div id="progress_inner" class="progress-inner">', artArr=[], max=0; // 获取最大值 for(var i=0; i<list.length; i++) { artArr.push(list[i].art); } max = Math.max.apply(.原创 2021-10-25 10:46:31 · 1073 阅读 · 0 评论 -
json字符串格式化展示
JSON.stringify(jsonStr, null, 4);原创 2021-09-09 16:22:07 · 143 阅读 · 0 评论 -
js根据多个查询条件筛选数据
// 根据查询条件筛选数据function getJsonObj(params,dataArr) { var newArr = dataArr.filter(function(p) { var isFlag = false; for(key in params){ if(params[key] == ""){ isFlag = true; }else{ isFlag = params[key] == p[key]; } .原创 2021-07-12 13:08:48 · 852 阅读 · 0 评论 -
js正则表达式匹配任意字符(包括换行符)
相匹配html注释行中间的注释信息(<!--注释注释注释-->),一开始是这么写的:let regExp=/\<\!\-\-(.*?)\-\-\>/g; 死活匹配不上,后来经过查找是发现注释中有换行符,没有被匹配。发现JavaScript中点号不匹配换行符。所以把点号换成[\s\S]就可以啦!let regExp=/\<\!\-\-([\s\S]*?)\-\-\>/g; ...原创 2021-07-07 13:43:52 · 2871 阅读 · 0 评论 -
js给div赋值时,值中含有html标签导致的问题
1,问题描述let value = '<a>.......</a>';$('div').taxt(value);// 期望展现// <a>.......</a>// 实际展现// .......html将a标签识别为标签,导致展现形式不是期望值。2,解决方法将“<” 和 “>” 进行转义,即可。如有需要,也可转义双引号。如下代码:let titleStr = value.replace(/</g, '&a原创 2021-05-14 14:41:26 · 299 阅读 · 0 评论 -
js获取当前时间的年月日时分秒以及时间的格式化
1.获取当前时间var myDate = new Date();2.获取时间中的年月日时分秒myDate.getYear(); // 获取当前年份(2位)myDate.getFullYear(); // 获取完整的年份(4位,1970-????)myDate.getMonth(); // 获取当前月份(0-11,0代表1月)myDate.getDate(); // 获取当前日(1-31)myDate.getDay(); /转载 2021-05-14 11:30:30 · 3847 阅读 · 0 评论 -
js 复制文本框内容
ElementObj.select();//选中input框或textarea文本域的内容document.execCommand("Copy");// 执行浏览器复制命令说明:1,ElementObj为输入框或文本框的js对象;2,只能复制 input 或 textarea 的内容,div等元素内的文本不可复制,如果想要复制的话,可以将内容赋值到隐藏文本域中。...原创 2021-05-14 11:24:39 · 670 阅读 · 0 评论 -
JS中switch case,多个case对应同一操作的写法
let paramArrayPOPParam = 0; switch (tabType) { case 'list_selRefOppPop': paramArrayPOPParam = 1; break; case 'list_selRefTranPop': // 多个case对应同一个操作 case 'list_selRefSrvPop': case 'list_selRefFuncPop': paramArrayPOP..原创 2021-04-25 16:14:34 · 1759 阅读 · 0 评论 -
tab页过多,展现按钮可左右移动tab页
1,结果如下图,tab太多,一行放不下,右侧展现左右按钮,鼠标移上tab页可左右移动2,代码/** * 功能按钮过多时,可左右移动 * @param {*} id 按钮区域id * @param {*} dom 按钮元素 * @param {*} btnclass 按钮样式 * @param {*} mp 每个按钮需要增加的宽度 * @param {*} n 隐藏按钮增加的个数 */ function btnShowOrHide(id, dom, btnclass='', m.原创 2021-04-22 15:12:41 · 1731 阅读 · 0 评论 -
jquery 绑定未来元素事件
1,用js动态生成dom元素很常见,那么给这种动态生成的元素如何绑定事件呢?首先排除click,是肯定不好用的。下面来介绍集中方法。1) 直接行内绑定<div onClick="doSomething()"></div>2) delegate先看下官方解释$('body').delegate('div','click',function(){ // do something……})3)onon绑定结合了click和delegate二者的功原创 2021-03-16 15:53:34 · 1057 阅读 · 0 评论 -
js 深拷贝和浅拷贝
一、先看个例子这个问题相信大家都遇到过,首先定义个对象obj,然后在定义个对象obj2,将obj赋值给obj2,本意是想不破坏原对象obj,而对obj2的数据进行一些列操作。然而事与愿违,当我操作obj2.b.c = 3的时候,打印obj,发现obj的数据也被改了。这将导致一些列问题。这是因为var obj2 = obj,是浅拷贝。二、深拷贝和浅拷贝的区别浅拷贝(shallow copy):只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存;深拷贝(deep copy):复原创 2021-03-16 15:13:02 · 138 阅读 · 0 评论 -
【深入浅出jQuery】源码浅析--整体架构
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美。其结构明晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷、渐进增强)优雅的处理能力以及 Ajax 等方面周到而强大的定制功能无不令人惊叹。另外,阅读源码让我接触到了大量底层的知识。对原生JS 、框架设计、代码优化有了全新的认识,接下来将会写一系列关于 jQuery 解析的文章。我在 github 上关于 jQuery 源码的全文注解,感兴趣的可以围观一下。jQ转载 2021-03-12 16:41:25 · 154 阅读 · 0 评论 -
js new操作符都做了哪些事情
1,先来看段代码function Fn() { this.a = 1;}let fn = new Fn();console.log(fn)输出为:我们都知道 fn 是 new Fn 出来的 Fn 的实例对象。那么在这个过程中,new 到底做了什么呢?2,我们先来看我们已知到了什么1)fn 是一个对象2)fn.__proto__ === Fn.prototype3)构造函数 Fn 中的this指向为它的实例 fn4)返回这个对象那么这些已知点,就是 .原创 2021-03-12 15:26:52 · 858 阅读 · 1 评论 -
js 一维数组,转成嵌套数组
// 情况一:// 数据源var egs = [ {name_1: 'name_1...'}, {name_2: 'name_4...'}, {name_3: 'name_3...'}, {name_0: 'name_0...'}, ].reverse()// 最终想要的数据形式 // {name_1: 'name_1...', // children.转载 2021-03-08 13:40:43 · 746 阅读 · 0 评论 -
js 原型链的继承
1,js继承,子函数继承父函数的属性和方法,以下实例为组合继承关键点:1)利用call得到父函数的实例属性2)*子函数的原型为父类型的一个实例对象3)*子函数原型的constructor修正<!--原型链+借用构造函数的组合继承1. 利用原型链实现对父类型对象的方法继承2. 利用call()借用父类型构建函数初始化相同属性--><script type="text/javascript"> function Person(name, age) {.原创 2021-02-14 16:02:29 · 162 阅读 · 0 评论 -
js原型和原型链的理解(透彻)
1,原型function Fn() {}Fn是一个构造函数,每个构造函数都会自动生成一个prototype属性,指向一个空对象,这个空对象就是原型。每一个实例对象都会从原型继承属性和方法。2,原型链以下两张图阐述的非常详细,感谢尚硅谷课程:http://www.atguigu.com/1). Object的构造函数/原型/实例之间的关系(图解)var o1 = new Object();var o2 = {};2).构造函数/原型/实例对象的关系(图解)funct..原创 2021-02-14 15:50:06 · 8484 阅读 · 0 评论 -
js浅谈实例属性和原型属性
1,实例属性是通过this关键字创建的属性,是属于每一个实例对象的私有属性2,原型属性是通过prototype创建的属性,属于构造函数的原型属性,每一个实例对象都共享的属性function Fn (a, b) { this.a = a; this.b = b;}Fn.prototype.c = '原型属性';var fn = new Fn('实例属性1', '实例属性2');console.log(fn)输出为:...原创 2021-02-13 15:36:52 · 691 阅读 · 0 评论 -
js的原型和原型链
构造函数创建对象:function Person() {}var person = new Person();person.name = 'Kevin';console.log(person.name) // KevinPerson 就是一个构造函数,我们使用 new 创建了一个实例对象 personprototype每个函数都有一个 prototype 属性每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对转载 2021-02-08 15:51:55 · 69 阅读 · 0 评论 -
js闭包的理解及使用
1,闭包的理解1)当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时, 就产生了闭包2,闭包产生的条件1)函数嵌套2)内部函数引用了外部函数的数据(变量/函数)3,闭包的特性1)内部变量使用完还一直存在,不被垃圾机制回收4,常见的闭包1)将函数作为另一个函数的返回值function fn1() { var a = 2 function fn2() { a++ console.log(a) }原创 2021-02-07 14:01:09 · 130 阅读 · 0 评论 -
js 事件委托
1.什么是事件委托1).将子元素的事件委托(绑定)给父元素2.事件委托的好处1).减少绑定的次数2).后期新添加的元素也可以享用之前委托的事件3.事件委托的原理1).冒泡4.触发事件的是谁1).子元素5.如何找到触发事件的对象1).event.target6.currentTargetVStarget1).currentTarget 要求绑定事件的元素一定是触发事件的元素2)....原创 2021-02-05 13:57:07 · 85 阅读 · 1 评论 -
js将伪数组转换为真正的数组
1,es6语法let list = documnet.getElementById('list');let arr = Array.from(list);console.log(list instanceof Array) //=====>falseconsole.log(arr instanceof Array) //=====>true2,es5语法[].slice.call(list): 根据伪数组生成对应的真数组let list = documn原创 2021-02-02 16:20:06 · 1387 阅读 · 1 评论 -
js 小功能收藏
1,表格固定表头// 表格固定表头function theadFixed(id) { $(id).scroll(function () { var scrollTop = this.scrollTop; $(this).find("thead").attr("style", "transform: translateY(" + scrollTop + "px);") });}2,给某个元素外层加标签 $('#' + id).wrapAll("<div id='" +原创 2021-01-22 15:42:54 · 78 阅读 · 0 评论 -
js 函数的节流和防抖
我们在项目中都会遇到这样的情况:(1)实时搜索功能,每按键一次就发一次请求,搜索一个词要在短时间内发送十几个请求(2)用户登录时,点击登录,没有立刻反应,用户就会频繁点击登录按钮,导致发送多个请求(3)监听页面滚动时,滚动一下也是要频繁触发事件,导致卡死函数的节流和防抖就是解决这些问题的。函数节流和函数防抖的理解函数节流和函数防抖的代码实现1,函数节流首先设置一个变量标识,代表是否可以执行操作,设置延时器,每300毫秒可以执行一次操作,300毫秒内,不在重复执行。原创 2021-01-19 16:37:06 · 102 阅读 · 0 评论 -
js插件封装方法(二)
jquery插件封装,例子为封装一个定版功能的弹窗/** * 定版通用弹窗插件 * Lixn * 2020/03/18 */(function ($) { window.$.fixVersion = function () { var html = '<div id="[Id]" align="center" class="modal fade" role="dialog" aria-labelledby="gridSystemModalLabel">'原创 2020-12-16 14:48:58 · 310 阅读 · 0 评论 -
js插件封装方法(一)
也是从前辈那里学来的封装方法,比较好用,以下是封装的提示框小插件(显示几秒后自动消失)/** * 提示框组件 * created by lixn * 2019/10/31 */tipsPop = (function(){ var obj = function (options){ //处理参数 this._setPara(options); // 入口函数 this.init(); }; obj原创 2020-12-16 14:22:20 · 1311 阅读 · 0 评论 -
记正则表达式replace第二个参数为函数的用法
1,正则表达式,匹配开头为'@@[',以‘]##'’结尾的字符串,正则表达式如下 letregExp=/\@\@\[.*?\]\#\#/g;2,匹配正则,并动态替换window.sessionStorage.setItem(userId, 'zhangsan'); //存储userIdlet param = { name: '@@[userId]##'}for(var key in param){ var str = param[key]; //j...原创 2020-12-08 13:26:36 · 588 阅读 · 0 评论 -
记完整可编辑表格js方法
1,可编辑表格,新增,删除,排序直接上代码/** * 可编辑表格,上下移动函数 * created by lixiaona 2019/08/06 */// 表格点击tr选中,加.on,使用表格排序必须先调用此方法function trOnclick(editTable){ editTable.delegate("tbody tr", "click", function() { editTable.find('tbody tr').removeClass('o原创 2020-12-09 17:10:24 · 182 阅读 · 0 评论 -
json数组按照某个字段的数值排序
// 按照某个字段排序function objSort(prop) { return (obj1, obj2) => { let val1 = obj1[prop]; let val2 = obj2[prop]; if (!isNaN(Number(val1)) && !isNaN(Number(val2))) { val1 = Number(val1); val2 = Number(val2); } if (val1 < val2) { .原创 2020-12-16 14:59:33 · 762 阅读 · 1 评论 -
js—uct时间格式(2020-12-02T02:13:38.376232Z)转换为北京时间
1、2020-12-02T02:13:38.376232ZT表示分隔符,Z表示的是UTC。UTC:世界标准时间,在世界标准时间上加上8小时,即东八区时间,也就是北京时间。2、所以按照这个思路,先将uct时间转换为时间戳,然后加上8个小时,再格式化为想要的时间格式 let text = "2020-12-02T02:13:38.376232Z"; let json_date = new Date(text).toJSON(); let a = new Date(json_date)原创 2021-01-02 13:28:38 · 2162 阅读 · 3 评论