1

以下 getElementsByTagName("p")[0]getElementById("demo")、同じ要素にアクセスします。

次の両方が機能するため、jquery データ関数が必要な理由がわかりません。2 つ目は、すべてのブラウザーに移植できるわけではありません。

$(document.getElementsByTagName("p")[0]).data("funcZ", function() {console.log("ZZZZZ")})

$(document.getElementById("demo")).data("funcZ")()

document.getElementsByTagName("p")[0].funcX = function() {console.log("XXXXX")}

document.getElementById("demo").funcX()
4

2 に答える 2

3

jQuery Webサイトによると:

jQuery.data() メソッドを使用すると、循環参照から安全でメモリ リークのない方法で、任意の型のデータを DOM 要素にアタッチできます。jQuery は、DOM 要素が jQuery メソッドによって削除されたとき、およびユーザーがページを離れたときに、データが削除されることを保証します。

ランダム フィールドを DOM 要素にアタッチすることで、DOM 要素が消えてもフィールドがメモリに残る可能性があります。jQueryがそれを処理しているようです。

于 2012-07-30T22:40:24.177 に答える
0

この$.data()メソッドは、データ属性にアタッチするのではなく、データを非表示にするのに最適です。キー/値で簡単にアクセスでき、プラグインの作成時に状態情報を保存するのに最適です。

于 2012-07-30T22:50:49.023 に答える