jQuery の .data() はいくつかのことを行いますが、データを属性として DOM に追加しません。これを使用してデータ属性を取得する場合、最初に行うことは、jQuery データ オブジェクトを作成し、オブジェクトの値をデータ属性に設定することです。その後、本質的に data 属性から切り離されます。
例:
<div data-foo="bar"></div>
を使用して属性の値を取得すると、.data('foo')
予想どおり「バー」が返されます。次に を使用して属性を変更し.attr('data-foo', 'blah')
、後で を使用.data('foo')
して値を取得すると、DOM がdata-foo="blah"
. を使用.data()
して値を設定すると、DOM ではなく jQuery オブジェクトの値が変更されます。
基本的に.data()
は、jQuery オブジェクトのデータ値を設定または確認するためのものです。チェックしていて、まだ持っていない場合は、DOM にあるデータ属性に基づいて値を作成します。.attr()
DOM 要素の属性値を設定または確認するためのものであり、jQuery データ値には触れません。両方を変更する必要がある場合は、 と の両方を使用する必要があり.data()
ます.attr()
。それ以外の場合は、どちらかを使用してください。