.removeData()


.removeData( [name ] )返回: jQuery

描述: 在元素上移除绑定的数据

  • 添加的版本: 1.2.3.removeData( [name ] )

    • name
      类型: String
      要移除的存储数据名.
  • 添加的版本: 1.7.removeData( [list ] )

    • list
      类型: Array,String
      一个数组或空间分隔的字符串命名要删除的数据块。

.removeData()方法允许我们移除用.data()绑定的值。当带name参数调用的时候,.removeData()将删除那个特有的值,当不带任何参数的时候,所有的值将被移除。从jQuery的内部.data() 缓存不影响任何在文档中的HTML5的data-属性,使用.removeAttr()可以移除这些属性。

当使用.removeData("name")时,如果没有这个属性名字是在内部数据缓存,jQuery将试图在元素上找到一个 data-的属性。为了避免重复查询 data- 属性,将这个名称设置为无论是nullundefined的值(例如 .data("name", undefined)),而不是使用.removeData()

从jQuery 1.7开始, 当所谓的键数组或一个空间分隔键的字符串,.removeData()删除在该数组或字符串的每一个键值。

至于jQuery 1.4.3,调用的.removeData()将导致属性值被删除恢复到DOM中的名称相同的数据属性的值,而不是设置undefined

例子:

Set a data store for 2 names then remove one of them.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html>
<html>
<head>
<style>
div { margin:2px; color:blue; }
span { color:red; }
</style>
<script src="https://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div>value1 before creation: <span></span></div>
<div>value1 after creation: <span></span></div>
<div>value1 after removal: <span></span></div>
<div>value2 after removal: <span></span></div>
<script>
$("span:eq(0)").text("" + $("div").data("test1"));
$("div").data("test1", "VALUE-1");
$("div").data("test2", "VALUE-2");
$("span:eq(1)").text("" + $("div").data("test1"));
$("div").removeData("test1");
$("span:eq(2)").text("" + $("div").data("test1"));
$("span:eq(3)").text("" + $("div").data("test2"));
</script>
</body>
</html>

Demo: