返回值:jQueryremoveData([name])
移除先前在元素上存放的数据
-
1.2.3 新增removeData([name])
name (String) 可选参数,一个字符串键,代表将要被移除的数据。 -
1.7 新增removeData([list])
list (Array,String) 可选参数,一个数组或用空格分隔的字符串数据键名,代表一组将要被移除的数据。
.removeData()
方法允许我们移除先前用 .data()
方法设置的数据。如果提供了 name 参数,则 .removeData()
删除那个指定的值,如果不带参数,则删除所有数据。该方法无法移除 HTML5 data-
属性数据。若要移除 data-
属性数据,请使用 .removeAttr()
方法。
当使用 .removeData("name")
时,如果在内部 data 缓存中找不到该属性时,jQuery 会尝试查找该元素上的 data-
属性。为了避免重新查找 data-
属性,可以将该属性的值设置成 null
或 undefined
(例如: .data("name", undefined)
),而不是使用 .removeData()
。
从 jQuery 1.7 起,调用 .removeData()
方法时,可以传入一个数组或用空格分隔的字符串数据键名作为参数,这样就可以一次性删除一组存储在某一元素上的数据。
从 jQuery 1.4.3 起,调用 .removeData()
方法会让这个将要被移除的属性值恢复成 DOM 中同名的 data- 属性值,而不是将它设置成 undefined
。
示例:
设置两个数据,然后再删除其中一个。
<!DOCTYPE html>
<html>
<head>
<style>
div { margin:2px; color:blue; }
span { color:red; }
</style>
<script src="jquery.min.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>