3

使用jQuery.dataして値を変更しても、DOM の属性は変更されません。しかし、DOM の属性が変更されると、デバッグがはるかに簡単になるのが好きです。

$().attr("data-value")では、データ属性を変更するために使用しても問題ありませんか?

$().attrそのミキシングを示すためのちょっとしたフィドルは、$().data一緒にうまく機能しません:

http://jsfiddle.net/AvRJc/

4

1 に答える 1

9

この関数は、属性dataではなく、jQuery が提供する要素のデータのキャッシュを管理します。関数と属性data-*の間の唯一の相互接続は、属性に一致するキーを要求した場合に、属性からの情報のキャッシュを初期することです。datadata-*datadata-*data-*

を使用dataしてデータを設定data-*しても、属性が更新されることはありません。

属性を更新するために使用しても問題attrありません。一貫性を保つ必要があります。取得と設定の両方に属性を ( 経由でattr) 使用するか、取得と設定両方に使用dataします。これらは異なるものを管理するためです。

使用attrするとは、要素の属性を実際に更新していることを意味します。これは、セレクターなど (CSS と jQuery の両方) で設定した値を使用できることを意味しますが、文字列値のみの取得と設定に制限されることも意味します。

使用dataすると、要素ではなくデータ キャッシュのみを更新することになります。つまり、これらの値をセレクターなどで使用することはできません(DOM のどこにも格納されないため)。 JavaScript データ型の範囲。

于 2013-09-17T08:23:48.340 に答える