OpenJS Foundation - openjsf.org · api.jquery.com

.removeData( [name ] )Returns: jQuery

Description: Remove a previously-stored piece of data.

The .removeData() method allows us to remove values that were previously set using .data(). When called with the name of a key, .removeData() deletes that particular value. When called with no arguments, .removeData() removes all values.

Note that .removeData() will only remove data from jQuery's internal .data() cache, and any corresponding data- attributes on the element will not be removed. A later call to .data( "key" ) will therefore re-retrieve the value from the data-key attribute. To prevent this, use .removeAttr() alongside .removeData() to remove the data- attribute as well. Prior to jQuery 1.4.3, as .data() did not use data- attributes, this was not an issue.

The bulk .data() getter will only fetch data- attributes once, even if .removeData() is called in between .data() calls.

As of jQuery 1.7, when called with an array of keys or a string of space-separated keys, .removeData() deletes the value of each key in that array or string.

Example:

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

30

31

32

33

34

35

<!doctype html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>removeData demo</title>

<style>

div {

margin: 2px;

color: blue;

}

span {

color: red;

}

</style>

<script src="https://code.jquery.com/jquery-4.0.0.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:

Read the original on api.jquery.com ↗