返回值:jQueryremoveData([name])

移除先前在元素上存放的数据

.removeData() 方法允许我们移除先前用 .data() 方法设置的数据。如果提供了 name 参数,则 .removeData() 删除那个指定的值,如果不带参数,则删除所有数据。该方法无法移除 HTML5 data- 属性数据。若要移除 data- 属性数据,请使用 .removeAttr() 方法。

当使用 .removeData("name") 时,如果在内部 data 缓存中找不到该属性时,jQuery 会尝试查找该元素上的 data- 属性。为了避免重新查找 data- 属性,可以将该属性的值设置成 nullundefined (例如: .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>

演示: