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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,570评论 1 19
  • 请参看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon阅读 7,190评论 2 19
  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    前端进阶之旅阅读 114,841评论 24 450
  • 不知道是昨天傍晚两杯咖啡的作用,还是突然间的回忆,总之,昨天跨越三十的这个夜晚,我,失眠了。我经常会感觉自己这么大...
    文刀宝阅读 158评论 0 0