js
Gordon-Liu
拼搏到无能为力,坚持到感动自己
展开
-
获取svg的宽度高度
let width = svg.style.width //失效let width = svg.offsetWidth //失效let width = svg.offsetWidth //失效let width = svg.getBBox() //失效let width = svg.getBoundingClientRect().width //有效原创 2022-03-16 10:59:06 · 1337 阅读 · 0 评论 -
addEventListener重复绑定事件问题
原本用的addEventListener一直在同一个节点多次绑定了事件试了用removeEventListener也没办法解绑不清楚具体是什么原因最后换了种方式node.onclick = function() { twicePopup(4) };//ts写法:可能会判断node不属于HTMLElement类型,加个as(类型断言)(node as HTMLElement).onclick = function() { twicePopup(4) };用该方法不会出现绑定多次的问题...原创 2022-03-14 10:37:45 · 1430 阅读 · 0 评论 -
addEventListener绑定事件,立即触发问题
原来的写法Node.addEventListener('click', twicePopup(1));更改后的写法Node.addEventListener('click', function() { twicePopup(1)});缺少function() {}需要传递对twicePopup函数的引用原创 2022-03-14 10:02:00 · 1305 阅读 · 2 评论 -
js中insertAdjacentHTML的用法
//一个参数 beforebegin:开始标签前, beforeend:开始标签后, afterbegin:结束标签前, afterend:结束标签后//第二个参数 需要插入的内容 this.element.insertAdjacentHTML("afterbegin", '<div></div>'); ...原创 2022-03-13 14:09:28 · 442 阅读 · 0 评论 -
高德地图基础代码优化
地图渲染矢量图形或标记heatingStationPoints.polygon.forEach( //循环在地图上新增多边形 (item: any) => { let polygon = new AMap.Polygon({ ...item, //此处不用加map: map }); //不用在此处单个添加map.add() if (polygon) coverageAreaData.allData.pus原创 2022-02-25 11:15:43 · 305 阅读 · 0 评论 -
获取、修改节点属性值,更改iframe路径方法及其配置
获取、修改节点属性值$(".news_list_firmInfo_go_detail").click(function () { let fullPathInfo = $(this).attr("fullPath"); //获取点击节点的属性值 $(".news_list_all")[0].style.display = "none"; $(".news_list_detail")[0].style.display = "block"; $(".news_list_det原创 2021-12-09 14:21:46 · 795 阅读 · 0 评论 -
js实现复制粘贴
<span class="logistics_tracking_order_data">LVS2016933302522732N12</span><img onclick="copyText()" src="./image/copy.png" >// 复制粘贴function copyText() { let oInput = document.createElement("input"); let copyData = document.quer原创 2021-12-07 10:11:33 · 630 阅读 · 0 评论 -
js 方法截取url中路径信息,并将其转为对象(为加密专用,防止url中的val中出现=或&)
思路:&永远会比=少,先取第一个=的下标存到数组中。然后再继续找所有&的下标存到数组中(&不太会出现在val中,所以这里是以&为标准)。再寻找所有出现在&后第一个=,并将其存到之前放=的数组中。获取到了他们的下标后就好办事了,下面的看代码就行。直接套用此方法即可不是很简洁,可以看思路,有更好的方法可以评论告诉我,或者将博客地址发我!urlDecode(url) { //传入参数格式为url中"?"后面部分console.log(url);let d原创 2021-08-22 19:34:08 · 469 阅读 · 0 评论 -
一维数组转二维数组,for循环+if即可
element表格中的html写法<el-table-column label="发票编号" width="100"> <template slot-scope="scope"> <el-dropdown placement="left" style="margin:5px 0" v-for="(item, index) in scope.row.invoiceIdList" :key="index"> <el-button>{{ite原创 2021-07-06 17:39:54 · 391 阅读 · 0 评论 -
Cannot read property ‘push‘ of undefined 错误解释并解决 通用
错误提示: Cannot read property ‘push’ of undefined状况一:这个是因为你要push的不是一个数组解决:你需要将你定义的参数设为数组data = []状况二:还有一种情况是你设置了数组,但你在刷新后还是会报这个错那是因为刷新后你定义的参数就为undefined了解决:所以你需要在js里加个判断就行了if(this.data === undefined) { this.data = []}...原创 2021-05-19 10:23:22 · 38404 阅读 · 2 评论 -
正则验证金额
正则验证输入金额(纯数字、小数点后两位)Vue.prototype.$judgeMoney = function (money) { if(money) { let reg =/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/; if(reg.test(money)) { return money } else { return this.$message.error('请输入正确的金额') } }}...原创 2021-04-01 13:41:33 · 1744 阅读 · 1 评论 -
将数组内所有对象,转换为嵌套数组并分类
原本的数据格式let data = [ { a: 'TRANS2021020818545106990', b: '02-08', c: '0.01', d: 1 }, { a: 'TRANS2021020805253108555', b: '02-08', c: '0.01', d: 0 }, { a: 'TRANS2021020805325003626', b: '02-07', c: '0.01', d: 0 }, { a: 'TRANS2021020818545106982', b: '02原创 2021-03-07 17:25:14 · 790 阅读 · 0 评论 -
Excel表格导入导出数据
Excel表格导入导出将表格数据导出到Excel表格中 <script> import axios from 'axios'; export default { name: "me", methods:{ submitDownload() { axios({ headers: { 'Content-Type': 'application/json' }, t原创 2021-02-10 21:11:26 · 234 阅读 · 0 评论 -
数组常用去重的五种方式,简单易理解(最后有12中去重的链接详情)
1、利用new Set()直接去重最简单的方法,但不能去除空对象(ES6常用)2、双for循环去重当第二个循环的等于第一个循环的,将第二个元素splice(i,1)去除 i–(ES5常用)3、利用indexOf查询去重建立空数组,原数组循环,当空数组内查不到原数组的值时,将其push到新数组 if(newArr.indexOf(arr[i]) === -1)4、利用includes查询去重,与上面方法类似,将式子改为 if(!newArr.includes(arr[i])),然后pus原创 2020-10-24 09:26:12 · 2124 阅读 · 0 评论 -
最全数组方法,最简单易懂,数组方法大全
常用数组:pop:原数组变,返回删除的元素push:原素组变shift:原数组变,返回删除的元素unshift:原素组变slice:返回新数组,截取索引开始,结束splice:原数组变,返回截取的新数组,截取索引开始,长度,截取位插入值reverse:原数组改变颠倒位置sort:原数组改变大小排序join:数组变为字符串(可加分隔符)concat:返回拼接的新数组ES5新增:indexOf()字符串、数组统用,返回指定字符首次出现的位置(索引值),返回这个索引值,否则返回-1for原创 2020-10-22 23:14:49 · 6439 阅读 · 1 评论 -
时间戳的简单用法
安装时间戳插件yarn add monent新建一个文件filter.js第一参数命名,第二参数传入的值(一串数字应为 13位 )进行设置import Vue from 'vue';import moment from 'moment';//星期、年月日时间过滤器moment.locale('zh-cn'); //设置本地中文Vue.filter("timeFilter",time=>{ return moment(time*1000).format("ddd YYY原创 2020-10-22 22:57:37 · 774 阅读 · 0 评论 -
深拷贝、浅拷贝简单理解(适合初学者)
浅拷贝:可以将对象的最外层属性全部复制,里面属性仍然是引用关系以下两种方式都为浅复制只能将最外层拷贝过去,然后原对象更改数据时,新对象数据不会变,而对原对象内部的对象进行数据更改时,新对象数据就会变深拷贝(比较浅的深拷贝)对于这样简单的深拷贝可以用这种方法将所有数据拷贝后,对原对象进行数据更改时,新对象的数据不会进行更改但是这样的就不好用了后来给原对象添加的数据,在新对象内不显示(拷贝的不彻底,没有全部拷贝下来)仅获取可遍历的属性,不可遍历的属性获取不到(属性:h)深拷贝(所有属性原创 2020-10-17 20:42:53 · 243 阅读 · 0 评论 -
Promise是什么、position:sticky特点及用法、async和await是什么、10种以上IE兼容写法
Promise是异步编程的一种解决方案,其实是一个构造函数两个特点:1、 对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变2、Promise对象的状态改变,只有两种可能:从pending(进行中)变为fulfilled(已成功)和从pe原创 2020-09-29 09:21:43 · 714 阅读 · 0 评论 -
es6新增数组、数组去重、es6新特性
ES6新增的数组方法1.forEachforEach()会遍历数组, 循环体内没有返回值,forEach()循环不会改变原来数组的内容, forEach()有三个参数, 第一个参数是当前元素, 第二个参数是当前元素的索引, 第三个参数是当前元素所属的数组.2.mapmap()的主要作用, 其实是创建一个新的数组, map()的参数和forEach()是一样的map()和forEach()有什么区别?, 使用map()遍历数组, 可以返回一个新数组, 并且不会改变原数组里的内容3.filterf原创 2020-09-23 09:06:06 · 990 阅读 · 0 评论 -
AJAX(ES6)封装原理、同源策略、JSONP轻松理解
AJAX• ajax 全名 async javascript and XML• 是前后台交互的能力• 也就是我们客户端给服务端发送消息的工具,以及接受响应的工具• 是一个 默认异步 执行机制的功能AJAX 的优势不需要插件的支持,原生 js 就可以使用用户体验好(不需要刷新页面就可以更新数据)减轻服务端和带宽的负担缺点: 搜索引擎的支持度不够,因为数据都不在页面上,搜索引擎搜索不到AJAX 的使用• 在 js 中有内置的构造函数来创建 ajax 对象• 创建 ajax 对象以后,我原创 2020-09-07 13:06:50 · 331 阅读 · 0 评论 -
http的工作流程
HTTP 的工作流程1. 客户端和服务器建立链接建立链接的主要步骤叫做 三次握手a. 客户端发送一个消息给到服务端b 服务端回给客户端一个消息c 客户端再回给服务端一个消息2. 建立链接后,发送一个请求给服务器(请求)每一个请求都要把我们的所有信息都包含请求每一个请求都会有一个 请求报文在 请求报文 中会包含我们所有的请求信息(也就是我们要和服务端说的话都在里面)我们的请求报文中会包含几个东西:1、请求行2、请求头(请求头都是键值对的形式出现的)3、请求空行(请求头和请求主体之原创 2020-09-08 22:45:15 · 1812 阅读 · 0 评论
分享