2017/10/27 data() 前端存取数据

2017-10-27  本文已影响0人  筱雪儿00

今天说一说用jQuery的data() 数据存取函数。

之所以要记录这个,是因为我看文档的时候写了一个小例子,结果控制台输出的却是undefined,后来拿别人的例子来试验还是不行。网上也找不到原因。后来才发现是jQuery版本的问题。额。。。很低级的错误了。但是感觉值得记录一下。

1、先说说基本的存取数据吧

<div class='box'></div>

      1)存数据

$('.box').data('test','test word');

存完数据就要取出来用嘛!

      2) 取数据

$('.box').data('test');// console.log() 输出 test word;

      3) 删除数据

$('.box').removeData('test');

console.log($('.box').data('test'));  //undefined

2、再说说我遇到问题的地方吧

<div class='box' data-test='test'></div>

$('.box').data('test');  //输出  undefined,实际应该输出test

这是用data() 函数取用h5的data-*属性,本来是段很简单的代码,却出了问题。后来想想会不会是jQuery版本的问题,因为我的jQuery是直接放在本地的,忘记从哪里下载的,后来引用换成百度cdn的jq就好了。果然是!此处黑线。。。

然后我就试验了一下各个版本的支持情况,结果如下:

1.2.3和1.3.2版本  不支持   输出 undefined,

1.4.2版本              不支持   输出 null

1.4.4到1.7.2版本   支持       但是数字会转化 // 00123  会输出 123 类型number

1.8.3版本及以上    支持       数字智能输出  //00123输出为 00123 类型string  123 //输出123 类型number

3、注意事项

data-* 自定义的属性名称有大写的话也是会输出 undefined 的,不管哪个版本都是。

因为如果属性名中有大写,chrome浏览器会自动转换为小写。(所以可以在data函数中直接用小写名称)

如果使用jquery的data()方法存数据,则不会有这个问题

上一篇下一篇

猜你喜欢

热点阅读