Home > Web Front-end > JS Tutorial > jQuery $.data() vs. $.attr(): When to Use Which?

jQuery $.data() vs. $.attr(): When to Use Which?

DDD
Release: 2024-12-16 18:33:12
Original
873 people have browsed it

jQuery $.data() vs. $.attr(): When to Use Which?

jQuery Data vs Attr: Understanding the Differences

In jQuery, both $.data and $.attr are used to manipulate attributes in DOM elements. However, they serve distinct purposes and differ in their usage and behavior.

When to Use $.data

$.data is primarily used to store data associated with a DOM element within jQuery's internal cache ($.cache). This data is not stored as HTML attributes on the element itself. Hence, if you need to store data persistently for data-binding or custom scripting purposes, $.data is the preferred choice.

Example:

<a>
Copy after login
Copy after login
$('#foo').data('myData', 'someValue');
// Gets the stored data
$('#foo').data('myData'); // outputs "someValue"
Copy after login

When to Use $.attr

$.attr, on the other hand, primarily sets or retrieves HTML5 data-attributes. These data-attributes are stored as attributes on the DOM element and are intended to provide additional metadata or content.

Example:

<a>
Copy after login
Copy after login
$('#foo').attr('data-attribute'); // outputs "myCoolValue"
$('#foo').attr('data-attribute', 'newValue'); // Sets the data-attribute to "newValue"
Copy after login

Additional Considerations

  • Data storage with $.data supports complex objects, whereas HTML data-attributes can only contain strings.
  • $.data auto-casts values into their appropriate types when retrieving data, such as converting "true" to a boolean.
  • $.attr preserves the original data type when retrieving data.
  • To avoid confusion, it is recommended to use camelCase syntax when accessing data stored with $.data.
  • You can also use $.removeAttr to remove data-attributes, which does not have a direct equivalent with $.data.

The above is the detailed content of jQuery $.data() vs. $.attr(): When to Use Which?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template