章节
问答
课签
笔记
评论
占位
占位

jQuery的属性与样式之元素的数据存储

html5 dataset是新的HTML5标准,允许你在普通的元素标签里嵌入类似data-*的属性,来实现一些简单数据的存取。它的数量不受限制,并且也能由JavaScript动态修改,也支持CSS选择器进行样式设置。这使得data属性特别灵活,也非常强大。有了这样的属性我们能够更加有序直观的进行数据预设或存储。那么在不支持HTML5标准的浏览器中,我们如何实现数据存取?  jQuery就提供了一个.data()的方法来处理这个问题

使用jQuery初学者一般不是很关心data方式,这个方法是jquery内部预用的,可以用来做性能优化,比如sizzle选择中可以用来缓存部分结果集等等。当然这个也是非常重要的一个API了,常常用于我们存放临时的一些数据,因为它是直接跟DOM元素对象绑定在一起的

jQuery提供的存储接口

jQuery.data( element, key, value )   //静态接口,存数据
jQuery.data( element, key )  //静态接口,取数据   
.data( key, value ) //实例接口,存数据
.data( key ) //实例接口,存数据

2个方法在使用上存取都是通一个接口,传递元素,键值数据。在jQuery的官方文档中,建议用.data()方法来代替。

我们把DOM可以看作一个对象,那么我们往对象上是可以存在基本类型,引用类型的数据的,但是这里会引发一个问题,可能会存在循环引用的内存泄漏风险

通过jQuery提供的数据接口,就很好的处理了这个问题了,我们不需要关心它底层是如何实现,只需要按照对应的data方法使用就行了

同样的也提供2个对应的删除接口,使用上与data方法其实是一致的,只不过是一个是增加一个是删除罢了

jQuery.removeData( element [, name ] )
.removeData( [name ] )

参考右边的代码区域,2个代码段分别描述了静态与实例data的使用

任务

?不会了怎么办
||
1
2
<!DOCTYPE html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / tomjmpt
a对象引用b对象,同时b对象也引用a对象

已采纳回答 / 杨勤_cd
我想静态就是直接用类名调用方法吧:$.data  实例就是指用具体的元素去调用方法:ele.datajava中猫是一个类,白猫,花猫就是这个类的实例

已采纳回答 / web_雪花
前面是个字符串,后面是对象

已采纳回答 / 等你到天明
代码如下$('#btn3').click(function(){                        $('.right .aaron').data("a", "I'm the cool kid!");                        $('.right .aaron').data("b", "My name is: ");                                    var f = $('.right .aaron').data("a") + "<...

最新回答 / 张焕标33
你好,我测试了一下,通过$('dom').data(key,value),设置的data数据在html中不可见,不过你可以在控制台中通过$('dom').data(key)得到设置的数据

最赞回答 / 慕的地2439609
$("p")这个选择器选中了多个p元素,function(n)中的n就是这些p元素的序号,0、1、2……

最赞回答 / 慕雪0249800
类比java,静态函数和实例函数,js中的静态函数只能由函数(类)调用,对象不能调用

最新回答 / 椎间盘
我的理解就是在ele这个对象中,(find)寻找到span这个标签,然后将reset这个变量(append)添加到ele下的span中。我不知道我这么说你懂了没?

已采纳回答 / 我要SSR
emmmmm。。。ele在这里是对象。。。$.data(element, key, value)这里我想你也理解错了。。。

最新回答 / 慕容5120236
先存数据,再取数据,最后通过append添加节点

最新回答 / 沫荼
你这个就是在用.data(key,value)函数啊

最赞回答 / 铁掌大厨
因为b取值的时候用了.name啊
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言