js
wode路
这个作者很懒,什么都没留下…
展开
-
可下拉可输入的输入框实现方法
如图所示,需求为可选择下拉框内容,若下拉框没有要选择的信息,则输入新的值。<div class="layui-inline"> <label class="layui-form-label">合同期限<b class="must">*</b></label> <div class="layui-input-block"> <input type="text" name="contractTimeLimit" bi="合.原创 2021-01-18 14:43:29 · 1366 阅读 · 0 评论 -
js中的宏任务和微任务
宏任务和微任务的关系从代码入手最好理解,如下:setTimeout(() => { //执行后 回调一个宏事件 console.log('内层宏事件3')}, 0)console.log('外层宏事件1');new Promise((resolve) => { console.log('外层宏事件2'); resolve()}).then(() => { console.log('微事件1');}).then(()=>{原创 2021-01-13 15:20:21 · 175 阅读 · 0 评论 -
JavaScript中立即执行函数有什么用,什么情况下需要使用
js立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行。jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。什么是 立即执行函数首先了解一下函数声明、函数表达式及匿名函数:js立即执行函数:1.使用()运算符2.使用 !,+,-,=,void等运算符,最常见的是!和vo原创 2020-12-23 11:27:12 · 1201 阅读 · 0 评论 -
javascript中的变量提升以及for循环中let和var的区别
变量提升js中函数及变量的声明都将被提升到函数的最顶部。变量可以在使用后再声明,也可以总是先声明再使用。需要注意,只有声明的变量会提升,初始化的不会。x=6;console.log(x);var x; //声明变量x//控制台输出6console.log(x);var x = 6; //初始化x//控制台输出 undefinedfor循环中let和var的区别(这个问题在使用uni-app写app的时候出现的,h5运行时var和let在for循环中的效果是一样的,运行到移动设备的时原创 2020-12-21 15:27:53 · 758 阅读 · 0 评论 -
javascript获取某年某月份的第一天和最后一天
获取每个月天数://value格式202012function getMonthLastDateFn(value){ // year, mon:mon取值范围为0-11 let year = value.slice(0, 4); //2020 let mon = Number(value.slice(4)); //12 let dateObj = new Date(year,mon,0); let theMonthDay = dateObj.getDate(); //结果为31 return原创 2020-12-18 10:44:10 · 615 阅读 · 0 评论 -
防抖和节流操作
防抖防抖操作,我的理解就是,第一次触发事件时,不立即执行操作,设置一个n秒的期限,如果n秒内没有再次触发这个事件,就执行函数;如果n秒内再次触发了事件,则将计时器清零重新开始计时,直到计时器达到n秒,才执行函数。这样就达到了短时间内多次触发同一个事件,只会执行一次函数的效果。实现:<button type="primary" @click="clickHandler(2)">提交</button>export default { data(){ return {原创 2020-12-17 16:06:22 · 136 阅读 · 0 评论 -
layui页面在IE11刷新页面时走浏览器缓存,不会请求服务器数据刷新页面
尝试了每次接口换不同参数,不好使最终还是把所有的get请求都改成了post请求才解决问题原创 2020-09-29 11:20:09 · 457 阅读 · 0 评论 -
使用throw new Error终止循环并抛出自定义异常
$('div').each(function() { if(a > b) { throw new Error("a不能大于b"); //执行到这里时候会终止一切循环 }})原创 2020-09-22 15:28:59 · 918 阅读 · 0 评论 -
去除金额中的千分符,并将字符串转换为数字
//去除千分位,参数num必须为数字、逗号、小数点组成的字符串function delcommafy(num) { if(num == undefined || num == null) { num = 0; } num = num.toString(); num = num.replace(/[ ]/g, ""); //去除空格 num = num.replace(/,/gi, ''); return Number(num);}示例:...原创 2020-09-22 15:24:46 · 732 阅读 · 0 评论 -
金额加千位分隔符并保留2位小数位
/* * toThousands(s,type) * 功能:金额按千位逗号分割 * 参数:s,需要格式化的金额数值. * 参数:type,判断格式化后的金额是否需要小数位.传0无小数位,不传或传其他 * 值保留两位小数 * 返回:返回格式化后的数值字符串. */function toThousands(s, type) { if(s == 0.00){ s = 0; } if(/[^[\-|0-9][0-9]*]/.test(s)) return "0"; i原创 2020-09-22 15:19:16 · 1240 阅读 · 0 评论 -
JQuery DOM clone(true)在IE8使用时克隆对象的绑定事件不能一起克隆问题
clone()表示复制标签本身,clone(true)会将标签绑定的事件一起复制。但是在IE8中使用clone(true)后,点击事件仍旧不生效,经排查发现IE8中克隆对象的click事件消失了。可做如下处理,手动给需要绑定事件的元素绑定,再次调用触发事件的函数即可。另外,IE8中trigger('click') 这种写法会有问题。//添加点击事件$(copyTable).find(".peoplekz").attr('onclick', 'peoplekzFun(this)'); //触发点原创 2020-06-29 20:56:49 · 531 阅读 · 1 评论 -
JS/JQuery获取元素的方法
jQuery获取:jQuery.parent(expr),找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素jQuery.children(expr),返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点jQuery.contents(),返回下面的所有内容,包括节点和文本。原创 2020-06-29 19:17:38 · 135 阅读 · 0 评论 -
layui的select监听事件在页面加载时是否调用
layui的select监听事件在页面加载时不会主动调用,如果调用了,一定有类似下面的触发事件://修改查看页面默认触发select下拉事件$('select[name=businessType]').next().find('.layui-this').click();原创 2020-06-29 18:04:29 · 779 阅读 · 1 评论 -
VueTreeselect 插件使用
VueTreeselect 地址:https://www.vue-treeselect.cn/使用@select监听树形下拉选中事件:<template slot-scope="scope"> <treeselect v-model="scope.row.departId" @select="departTreeSelected" :disable-branch-nodes="false" :show-count="false" :m原创 2020-06-22 14:31:18 · 4756 阅读 · 0 评论 -
前端报错跨域问题,可能是请求类型写错了
后端把get请求写成了post请求,再改回get就好了(或者前端改为post)原创 2020-06-19 19:18:52 · 194 阅读 · 0 评论 -
js 根据标识截取字符串;遍历对象并拼接数组
js截取两个字符串之间的内容:var str = "aaabbbcccdddeeefff";str = str.match(/aaa(\S*)fff/)[1];alert(str);//结果bbbcccdddeeejs截取某个字符串前面的内容:var str = "aaabbbcccdddeeefff";tr = str.match(/(\S*)fff/)[1];alert(str);//结果aaabbbcccdddjs截取某个字符串后面的内容:var str = "aaabbbccc原创 2020-06-19 13:49:18 · 860 阅读 · 0 评论 -
jq操纵dom数组赋值
需求:点击计税按钮,发送计税请求,将返回的数组中的数据根据对应证件号码填写到相应位置。返回数据格式如下:callAPI(url, {id: urlId}, function(data,msg) { $(data).each(function(index1, elem1) { var cardNum = elem1.cardNumber; var finalAmount = elem1.amount; var finalTaxAmount = elem1.taxAmount; $('原创 2020-06-17 13:16:18 · 213 阅读 · 0 评论 -
IE浏览器 页面跳转时带中文参数报错:页面找不到;请求接口传中文参数报错400问题解决方法
页面跳转时将带中文参数的url用encodeURI编码://将url编码morePtbox('我的资产', encodeURI('morebox/myAssetsList.html?top_name='+ '我是中文参数',['80%', '80%']);弹框控件:function morePtbox(ptTitle, ptUrl, size) { //中型弹框封装(网报) layer.open({ type: 2, //基本层类型 title: [ptTitle, 'font-size原创 2020-06-11 10:30:19 · 951 阅读 · 0 评论 -
浏览器渲染与性能优化
加载静态资源过程:浏览器根据DNS服务器得到域名的IP地址向这个IP的机器发送http请求服务器收到、处理并返回http请求浏览器得到返回http请求浏览器渲染页面过程:根据HTML结构生成文档对象化模型DOM Tree根据css生成CSS对象模型(CSSOM)将DOM和CSSOM结合生成渲染数RenderTree浏览器根据RenderTree开始渲染展示遇到script标签会执行并阻塞渲染性能优化点如何防止阻塞DOM渲染如何保证首屏优化,关键渲染路径优化从浏览器渲原创 2020-06-02 23:41:13 · 207 阅读 · 0 评论 -
js删除/清空指定元素下的子节点
删除指定元素$("#div .span").remove();子删除 class=“italic” 的所有 p元素$("p").remove(".italic");删除被选元素的所有子元素$("#div1").empty();原创 2020-05-30 14:56:25 · 1025 阅读 · 0 评论 -
layui 动态渲染数据表格中下拉框的选项值
思路:根据layui数据表格中 templet属性中的LAY_INDEX字段动态生成下拉框的class,在渲染表格的时候发送请求,根据select.class操纵dom将接口返回数据填充到select下拉框中。数据表格: var n = { title: '变更后处室', field: 'useDepartIdAfter',width: 200, templet: function (d) { var layIndex = d.LAY_INDEX; //当前表格行原创 2020-05-29 14:17:04 · 3663 阅读 · 0 评论 -
IE不能重复上传文件名相同的文件问题(layui上传组件解决方案及普通上传附件解决方案)
在layui上传组件的done回调中增加如下代码:/* IE下同个文件多次上传无反应 */if (layui.device() && layui.device().ie) { $('.layui-upload-file').attr('type', 'hidden'); $('.layui-upload-file').attr('type', 'file');}亲测有用,如下:若不是layui上传组件,可参考以下博客:测试反应了一个问题,就是在ie底下上传了一个文件,然后原创 2020-05-29 14:14:57 · 1314 阅读 · 0 评论 -
IE中JQuery报错:意外地调用了方法或属性
通过对代码的调试定位到问题为渲染select下拉列表时候出现的。查资料发现该问题的原因为:ie对动态append的内容有要求,需要将一个具有完整意义的html一起append到代码中 。//下拉框<div class="layui-form-item"> <label class="layui-form-label"> 使用部门<span style="color:#e56175; font-size:24px;">*</span> </l原创 2020-05-28 11:35:02 · 492 阅读 · 0 评论 -
关于layui在IE中报错 XX为空或不是对象问题
实在找不到解决办法的,改源码是一个解决办法:IE报错 HAS_PARENT为空或不是对象原创 2020-05-28 11:18:57 · 472 阅读 · 0 评论 -
readonly 属性 在IE中出现光标问题
//去掉readonly的光标$('input[readonly]').on('focus', function() { $(this).trigger('blur');});原创 2020-05-26 18:11:46 · 264 阅读 · 0 评论 -
js使用逗号拼接id并去重
var ids = '111,222,333,333,444,111';// 将字符串转化成数组var idsArr = ids.split(","); //[111,222,333,333,444,111]// 数组去重var uniqueIds = unique(idsArr); //[111,222,333,444]ids = '';//数组转成用逗号分隔的字符串uniqueIds.forEach(function(item) { if(ids == '') {原创 2020-05-24 00:53:47 · 1021 阅读 · 0 评论 -
layui 多次加载数据表格,导致对表格的操作按钮的一次点击触发多次点击事件
将注册按钮事件写到加载的第一个layui模块中,可防止多次加载表格后触发多次data-type点击事件,代码如下: <button class="layui-btn layui-btn-sm" title="添加一行" data-type="addRow"><img style="width: 15.2px; margin-top: -3px;" src="../../static/img/zj.png"/> 增加</button>加载第一个layui模块//定原创 2020-05-22 14:24:20 · 1309 阅读 · 1 评论 -
JavaScript数据类型
已声明未初始化的值在作用域范围使用时为undefined,未声明的变量则会返回一个错误; 但typeof操作符对上述两种都会返回undefined;null值表示一个空对象指针组(只要想要保存对象的变量还没有真正保存对象,就应该明确让该变量保存null’值)因此使用typeof操作符检测会返回 object 类型;并且由于undefined的值是派生自null值的,因为检测他们的相等性会返回true;...原创 2020-05-17 17:09:26 · 85 阅读 · 0 评论 -
jquery对象和dom对象相互转换
1.jquery对象转换为dom对象jq对象:jq选择器获取dom对象:$[index]dom对象: $.get(index)2. dom对象转为jquery对象dom对象:dom选择器jquery对象:原创 2020-05-16 19:14:14 · 155 阅读 · 0 评论 -
兼容IE8的文件下载,解决IE下载文本和图片直接打开问题
function fileDown(p,id){ var surl ='systemController.do?doFile&attachmentId=' + id; //IE不能直接下载txt文件 //创建a标签 var url = API_URL+p; var saveName = url.split('/').pop(); var DownLoad = function (url, name) { if (!!window.ActiveXObject || "ActiveXOb原创 2020-05-14 11:10:59 · 1100 阅读 · 0 评论 -
兼容IE——下拉菜单栏和表格联动
效果图:(主要是兼容IE8比较麻烦 0.0)<div class="layui-row tablestyle"> <div class="layui-col-md2" style= "margin-top:10px; float: left;"> <div class="layui-inline select-title"> <form class="layui-form" id="form-list">原创 2020-05-14 08:55:24 · 233 阅读 · 0 评论 -
vue学习-1:编程范式:命令式开发和声明式开发
命令式编程:<div id="text"></div>var message = "hello world";$("#text").val(message);声明式编程:(vue为例)<div id="text">message</div>const app = new Vue( //传入对象类型参数{ el: '#text', //el属性:用于挂载要管理的元素 data: { //data属性:定义数据 message: "he原创 2020-05-11 12:36:59 · 631 阅读 · 0 评论 -
js获取select标签选中的值,拼接option选项
if(data.length == 0) { //获取下拉框选中值的页面表示值 var useDepart = $('#useDepartmentsId option:selected').text(); //拼接option选项 var selectHtml = '<option value="">请选择</option>'; selectHtml += '<option value="' + useDepartmentsId + '">' + useDepa原创 2020-05-09 16:42:51 · 1924 阅读 · 0 评论 -
js 删除字符串中第一个逗号
var ids = ',111,222,333';var firstletter = ids.substr(0, 1);if(firstletter == ',') { ids = ids.substr(1) } console.log(ids) //'111,222,333'substr(start, length)参数start:必需, 起始下标。必须是数值。如...原创 2020-05-08 16:41:09 · 1833 阅读 · 0 评论 -
js笔记
for (var x in obj)for (var x in obj)if (obj.hasOwnProperty(x))console.log(obj[x]);x对应obj对象属性名,若obj为数组,则x对应键名。hasOwnProperty(x)方法用于判断obj[x]是否已被定义,从而过滤undefined内容。instanceofinstanceof 运算符用来测试一个对象...原创 2020-05-06 11:03:50 · 472 阅读 · 0 评论 -
IE兼容ES6的某些方法
放到使用这个方法的地方的前面即可IE不支持forEachforEach() 方法用于遍历数组,并将每个元素传递给回调函数。forEach对于空数组和未初始化的值不会进行任何操作例如:const arraySparse = [1,3,,7];let numCallbackRuns = 0;arraySparse.forEach(function(element){ console....原创 2020-04-13 20:46:36 · 400 阅读 · 0 评论 -
layui中对select下拉框填充option数据;编辑修改时的数据回显问题;select下拉框数据联动问题
callAPI('newDataGeneralProject.do?findPage&limit=1000', '', function(data) { //取data返回值中的某项数据填充select选项值 var sel = document.getElementById("parentid"); for(var i = 0;i < data.length; i++...原创 2020-04-13 20:32:56 · 3438 阅读 · 0 评论