web-dev-qa-db-ja.com

データ属性jquery vs javascriptを取得する

デフォルトでカスタムデータ属性が設定されています。

_data-equipment="0"_

。data()を使用してjqueryで変更した場合

$(this).data("equipment", 10)

そしてgetAttribute()を使用します

this.getAttribute("data-equipment")

新しい値(10)ではなく、古い値(0)を取得します。しかし、私が使用する場合

$(this).data("equipment") i新しい値(10)を取得します。

これはこのように動作するはずですか、何か不足していますか?

ありがとう!

50
pedroto

.data()はデータ属性ではなく、内部jQueryキャッシュで動作します。最初にキャッシュレコードが見つからない場合、データは対応するdata-属性(存在する場合)。ただし、それは彼らの協力の終わりです。

属性を操作する場合、属性値は文字列でなければならないため、その目的には役に立たないでしょう。

45
Esailija