21

次のように、jQuery でデータ属性を更新しています。

jQuery('div').data('hidden', 'true');
alert(jQuery('div').data('hidden'));

データ属性値が変更され、 である新しい値が返されましたがtrue、DOM はまだ である古い値を表示していますfalse

4

2 に答える 2

39

.data()を使用してデータ値を更新すると、jQuery によって管理される内部オブジェクトが更新されるため、data-*属性では更新されません。

于 2013-07-16T03:56:08.063 に答える
5

私はブッシュの周りをひどく叩いていました:(そして問題を解決することができました.htmlが動的で、最初にアクセスした後にデータ属性が後で変更された場合、jqueryデータメソッドを使用してこれを達成できないような縫い目.

jQuery.data()によると

data- 属性は、 data プロパティが最初にアクセスされたときに取得され、その後はアクセスも変更もされません (その後、すべてのデータ値は内部的に jQuery に保存されます)。

だから私がしたことは、整数の解析された値を与えないattrメソッドに変更したので、次のように変換するには「+」オペランドを使用する必要があります。

+ myElement.attr('data-index');

注:注意が必要です。データ属性に文字列がある場合、結果が NaN に変換されます。ところで、それはコードの実装の選択です。

于 2016-03-23T10:30:30.843 に答える