次のように、jQuery でデータ属性を更新しています。
jQuery('div').data('hidden', 'true');
alert(jQuery('div').data('hidden'));
データ属性値が変更され、 である新しい値が返されましたがtrue
、DOM はまだ である古い値を表示していますfalse
。
次のように、jQuery でデータ属性を更新しています。
jQuery('div').data('hidden', 'true');
alert(jQuery('div').data('hidden'));
データ属性値が変更され、 である新しい値が返されましたがtrue
、DOM はまだ である古い値を表示していますfalse
。
.data()を使用してデータ値を更新すると、jQuery によって管理される内部オブジェクトが更新されるため、data-*
属性では更新されません。
私はブッシュの周りをひどく叩いていました:(そして問題を解決することができました.htmlが動的で、最初にアクセスした後にデータ属性が後で変更された場合、jqueryデータメソッドを使用してこれを達成できないような縫い目.
jQuery.data()によると
data- 属性は、 data プロパティが最初にアクセスされたときに取得され、その後はアクセスも変更もされません (その後、すべてのデータ値は内部的に jQuery に保存されます)。
だから私がしたことは、整数の解析された値を与えないattrメソッドに変更したので、次のように変換するには「+」オペランドを使用する必要があります。
+ myElement.attr('data-index');
注:注意が必要です。データ属性に文字列がある場合、結果が NaN に変換されます。ところで、それはコードの実装の選択です。