jQueryにおけるdataメソッドの誤解解析
1853 ワード
今日謝亮兄弟は私と何かを議論したとき、性能について話しました.彼はattr操作のカスタム属性data-uidを使っていました.私はdataがいいと言っていました.datasetが実現したので、彼はjQueryソースコードをひっくり返して私に言いました.これを発見しなかったので、私は退屈しました.そこで私はdata方法のソースコードをよく読んで、やっと私がずっと誤解していることに気づいて、それから、前に私にdata方法を聞いた友达に謝罪して、私はあなた达をだまして、あなた达は私を殴ってください.
今日私は再びdataの方法を釈明して、先にjQuery 1.11.0のハンド・バックの中で腫れていることを見て、言うようにしましょうhttp://shouce.jb51.net/jquery/data.html、用法ここでははっきり言っていますが、内部はどうやって実現したのでしょうか.私を突き刺してソースコードを見ます(読めなくても大丈夫です.私は簡単に彼の流れを分析します)
実は私は前にもあなたたちをだましていません.カスタム属性はいつもattrする必要はありません.dataはjQueryが私たちに与えたスイスの軍刀で、とても鋭いです.
はい、私は怠け者で、怠け者の配図、すでに多くの字を書いて、もし何か言うのが間違っているところがあれば、あなた达は私を殴ってください
今日私は再びdataの方法を釈明して、先にjQuery 1.11.0のハンド・バックの中で腫れていることを見て、言うようにしましょうhttp://shouce.jb51.net/jquery/data.html、用法ここでははっきり言っていますが、内部はどうやって実現したのでしょうか.私を突き刺してソースコードを見ます(読めなくても大丈夫です.私は簡単に彼の流れを分析します)
, $("#id").data("test"); ( )
: jQuery $("#id") , 、
: data , attributes 。
: , jQuery
, undefined, , json。
attr ?
$("#id").data("test"); :
: jQuery $("#id") , 。
: data , jQuery
:
, , attributes , ?
js , var cache = {}; jQuery , 、
dom , dom 。
, attr ,
$("#id").data("test", "123"); data-test="hehe"
$("#id").attr("data-test", "123"); data-test="123"
, ?
$("#id").data("test", {str: "hehe"}); {str: "hehe"} , data-test="hehe"
$("#id").attr("data-test", {str: "hehe"}); data-test="[object Object]"
, 。
実は私は前にもあなたたちをだましていません.カスタム属性はいつもattrする必要はありません.dataはjQueryが私たちに与えたスイスの軍刀で、とても鋭いです.
はい、私は怠け者で、怠け者の配図、すでに多くの字を書いて、もし何か言うのが間違っているところがあれば、あなた达は私を殴ってください