4.自定义数据《jquery实战》
4.4 元素中的存储自定义数据
data([key],[value])
在元素上存放数据,返回jQuery对象。
key (String)
存储的数据名.
key,value (String,Any)
key:存储的数据名
value:将要存储的任意数据
obj (object)
为集合中的每个元素添加键/值对对象数据
data() 方法语义(1)
data([key],[value])
使用jQuery方法为集合中的所有元素添加传递的数据。
- 不区分驼峰命名法的变量名字大小写,与虚线和横线链接的名字一样对待
$('.class').data('lastValue')等价于$('.class').data('last-value') - 与
attr()方法保存字符串不同,data()可以保存数据的类型。
例子,使用 attr() 和 data() 方法会获取不同的值
<input id="name" name="name" data-mandatory="true" />
console.log(typeof $('#name').attr('data-mandatory')); //string
console.log(typeof $('#name').data('mandatory')); //boolean
undefined不会作为一个值对待,但仍返回一个Jquery对象。
data() 方法语义(2)
data(object)
为集合中每个元素添加键-值对对象数据。
jQuery.data()(或等价$.data())属于低级别方法,是DOM元素操作,而不是jQuery对象。
便于理解他们的不同,假设有个ID 为 book 的元素,想使用 $.data() 方法存储:
$.data(document.getElementById('book'),'price',10);
//使用data()这样写
$('#book').data('price',10);
data([name]) 方法语义(3)
data([name])
使用指定的名称来查询存储的数据或者HTML5 data-* 属性。
返回
返回查找的数据,没找到返回undefined
data()方法作为读取器的过程:
如果没有找到之前存储的数据,会使用给定名字查找HTML元素的 data-* 属性。一旦找到 data-* 值,此方法会把这个值存储在jQuery管理的存储区。因此,即使使用 attr() 修改了属性值,任意后续的方法调用也不会再从属性中查找数据值,因为这些数据已经存储在jQuery内存中。弱没有找到,返回 undefined。

例子:
<input id="level1" type="text" value="I'm a text!" data-custom="foo" />
<script>
console.log($('#level1').data('custom')); //foo
console.log($('#level1').attr('data-custom')); //foo
$('#level1').attr('data-custom', 'new value'); //更新属性值,但是没有更新$('#level1').data('custom')的值
console.log($('#level1').data('custom')); //foo
console.log($('#level1').attr('data-custom')); //new value
//这里来更新data
$('#level1').data('custom', 'new value'); //更新 $('#level1').data('custom')的值
console.log($('#level1').data('custom')); //这里是 :new value
</script>
removeData() 方法语法
removeData([name|list])
在元素上移除存放的数据,参数可以是数组,也可以是以空格分割的名称。没有参数,表示删除所有值。
[name] String
存储的数据名
[list] Array,String
移除数组或以空格分开的字符串
例子:
删除所有
$('#name').removeData();
删除foo和bar数据,
$('#name').removeData(['foo','bar']);
或者
$('#name').removeData('foo bar');
jQuery.hasData() 方法语法
`jQuery.hasData(element)`
确定元素是否包含相关的数据。
参数
element(Element) 要检查的DOM元素
例子:
$.hasData(document.getElementById('name')); // 返回false,表明此元素没有存储数据
$.data(document.getElementById('name'),'count',10);
$.hasData(document.getElementById('name')); //返回true
4.自定义数据《jquery实战》的更多相关文章
- jQuery 实战读书笔记之第四章:使用特性、属性和数据
使用属性 /* 每个元素都有一或多个特性,,这些特性的用途是给出相应元素或其内容的附加信息.(出自 JavaScript 高级程序设计) */ /* 特性是固有的 JavaScript 对象 属性指的 ...
- 使用 data-* 属性来嵌入自定义数据
1. HTML 实例 <ul> <li data-animal-type="bird">Owl</li> <li data-animal- ...
- jquery实战---标签页效果
在前面的博客中,小编主要简单的介绍了jquery的一些基本知识,今天这篇博文,小编继续来学习jquery的相关知识,今天我们来学习一个标签页的小例子,相关源码小编已经上传,有需要的小伙伴可以自己去下载 ...
- jquery实战第一讲---概述及其入门实例
就在5月28号周四下午五点的时候,接到xxx姐姐的电话,您是xxx吗?准备一下,周五上午八点半去远洋面试,一路风尘仆仆,颠颠簸簸,由于小编晕车,带着晕晕乎乎的脑子,小编就稀里糊涂的去面试了,温馨提醒, ...
- JQuery实战---初识JQuery+入门实例
JQuery在小编的世界中,也就是JavaScript和查询(Query),即是辅助JavaScript开发的库,百度百科对JQuery的介绍比较详细,小伙伴可以东东自己可耐的小爪子,上网进行搜索,说 ...
- 大数据开发实战:Hive表DDL和DML
1.Hive 表 DDL 1.1.创建表 Hive中创建表的完整语法如下: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [ (col_nam ...
- 大数据开发实战:MapReduce内部原理实践
下面结合具体的例子详述MapReduce的工作原理和过程. 以统计一个大文件中各个单词的出现次数为例来讲述,假设本文用到输入文件有以下两个: 文件1: big data offline data on ...
- 判断数据库内容,在页面显示自定义数据case when
判断数据库内容,在页面显示自定义数据 case when...then ...else...end 比如:数据库内容是这样: 通过sql语句判断,数据库的name字段,内容是月桂的,显示嫦娥,其他的显 ...
- 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第十一讲Hadoop图文训练课程:MapReduce的原理机制和流程图剖析
这一讲我们主要剖析MapReduce的原理机制和流程. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发 ...
随机推荐
- c++ std::function
std::function 是一个模板类,用于封装各种类似于函数这样的对象,例如普通函数,仿函数,匿名函数等等.其强大的多态能力,让其使用只依赖于调用特征.在程序的升级中,可以实现一个调用表,以兼容新 ...
- Duplicate spring bean id
问题背景:从本地调用服务器的dubbo接口进行测试 实现思路:基于IDEA+Spring+maven+Dubbo搭建测试项目,从本地直接调用 具体实现思路可参考博客:https://www.cnb ...
- Military Problem CodeForces - 1006E(dfs搜一下 标记一下)
题意: 就是有一颗树 然后每次询问 父结点 的 第k个结点是不是他的子嗣...是的话就输出这个子嗣..不是 就输出-1 解析: 突然想到后缀数组的sa 和 x的用法..就是我们可以用一个id标记当前 ...
- Two Bases CodeForces - 602A (BigInteger c++long long也可以)
哇咔咔 卡函数的 标记一下 c++和java的进制转换函数都是1-36进制的 c++ long long暴力就过了... 自己写一个就好了 import java.math.BigInteger; i ...
- Nastya and a Wardrobe CodeForces - 992C(规律)
写一下二叉树 推一下公式就出来了, 注意取模时的输出形式 #include <bits/stdc++.h> #define mem(a, b) memset(a, b, sizeof(a ...
- Educational Codeforces Round 38 (Rated for Div. 2) C
C. Constructing Tests time limit per test 1 second memory limit per test 256 megabytes input standar ...
- 【刷题】LOJ 6004 「网络流 24 题」圆桌聚餐
题目描述 假设有来自 \(n\) 个不同单位的代表参加一次国际会议.每个单位的代表数分别为 \(r_i\) .会议餐厅共有 \(m\) 张餐桌,每张餐桌可容纳 \(c_i\) 个代表就餐. 为了使 ...
- 洛谷P2633 Count on a tree(主席树,倍增LCA,树上差分)
洛谷题目传送门 题目大意 就是给你一棵树,每个点都有点权,每次任意询问两点间路径上点权第k小的值(强制在线). 思路分析 第k小......又是主席树了.但这次变成树了,无法直接维护前缀和. 又是树上 ...
- 德国GG了
我想起了今年ZJOI 这就是生活啊,伤悲总是要面对的
- js实现数字键盘
效果图: 1.引入jquery.js文件 2.css样式 <style type="text/css"> #numberkeyboard { border: 1px s ...