美文网首页
2017/10/27 data() 前端存取数据

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

作者: 筱雪儿00 | 来源:发表于2017-10-27 16:35 被阅读0次

    今天说一说用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()方法存数据,则不会有这个问题

    相关文章

      网友评论

          本文标题:2017/10/27 data() 前端存取数据

          本文链接:https://www.haomeiwen.com/subject/vxorpxtx.html