前端踩坑记录

这几个月公司产品改版,H5推倒重做了,又踩了不少坑记录一下。

JQ data与attr

根据日常使用发现,如果采用$(‘.xxx’).data(‘xxx’)来获取元素的data-属性值,当属性值为数字时,data()会将其当做数值显示。而使用$(‘.xxx’).attr(‘data-‘)读取时,attr()会把其当成文本型读取。

1
2
3
4
5
// 假设存在这么一个html元素
<div class="test" data-num="02"></div>

// 使用$('.test').data('num') 结果为: 2
// 使用$('.test').attr('data-num') 结果为: 02

GPS定位信息的容错处理

之前定位都是获取经纬度然后套用高德API获取,拼接省市区信息输出。

今天遇到了个BUG,某个用户发布的内容定位为 广东省中山市[object object],查询之后发现中山市是全国5个没有市辖区的城市之一,也就是根本不存在区的信息。

所以现在拼接之前都会 typeof(xxx) === “string”来判断下定位信息是否为一个字符串(高德信息不存在时会返回空对象{})

.match is not a function

开始以为是jQ之类的冲突,看了官方文档对于match的描述,match只能匹配文本型内容,如果是一个数字型或者浮点数去做match正则匹配,就会报错

未知宽度和高度水平居中任意行文字的css

之前用来定位文字水平垂直居中,用的最多的就是position定位,然后margin:auto去实现。今天停下来看了下display:table的应用,找到了新的办法。

1
2
3
4
5
6
7
8
9
10
11
12
13
/* 父级元素 */
.parent{
display:table;
/* 父级需要设置大小 */
width:666px;
height:666px;
}
/* 子元素设置table-cell和水平垂直居中 */
.child{
display: table-cell;
text-align: center;
vertical-align: middle;
}

评论区