簡而言之數據屬性可被附連到由 屬性所描述的元件,其中區域中的隱藏的輸入不能是另一個DOM元素 內部和它的使用僅限於形式(在良好做法反正) 。 隱藏的輸入是一個實際的DOM元素,而數據屬性很好......屬性,所以它可以綁定到DOM元素。這在大多數情況下,但如果你需要 更多的信息,也許一個例子繼續閱讀,我警告你它有點長,英語不是我的母語。
基本上,數據屬性的創建是爲了向DOM元素添加額外的信息,這些額外的信息無法用現有的屬性(例如類或好的舊ID)附加到它。
這主要影響基於Web的應用程序,或者更具體地說,Saas'對數據驅動的屬性的需求比普通網站(即使CMS背後有CMS)要廣泛得多。
- 使用的東西HTML特性,他們我們不是
最初創建或設計
- :
我很多年前,當你只有兩個選擇用來白日夢這個屬性使用在他們的令牌的HTML屬性,將它們與 客戶端或服務器端函數解碼(分裂,剪接,爆炸)
這種方法的問題是在於n無論你如何看待它,你都不是 使用他們的方式,他們的意思和設計使用的HTML屬性。
Html是一種標記語言,因此它不會自然擁有數據驅動屬性 ,您無法使用它來操縱數據處理和行爲。
,我有那麼基本的情況是,我想有一個 jQuery的對話框加載所有的數據輸入表單(客戶,產品,供應商等) 各自與不同的寬度和高度。這樣,客戶端腳本 會小得多,我需要爲每個添加到客戶端請求的應用程序中的新表單添加一個新對話框 。
這是我用來做什麼的數據屬性出現之前:
點擊添加新的產品
在ID令牌中我有3個值:
- 要從服務器加載的表格
- 對話框窗口的寬度
- 對話窗口的高度摹窗口
其他的方法是使用href屬性,但是這是遠遠超過使用id 只是因爲href屬性是爲了指向一個DOM元素或其他來源,沒有任何數據保持於雪上加霜被處理。
兩種方法都涉及使用拆分或類似功能來分解令牌。
這我怎麼做現在的真棒數據屬性:
點擊添加新的產品
這樣,我並不需要一個道理,我就可以得到每個屬性的值 與('data-form'),$(this).attr('data-dwith');等等。
恕我直言,我認爲向html元素添加一點額外的數據比創建 更長的JavaScript文件更重,更復雜。
對於這種情況,你爲什麼不寫數據或大量數據時,請選擇隱藏的輸入該ID作爲常規ID屬性? – elwyn 2011-04-06 02:19:42
@elwyn:我不知道。我從來沒有真正想過。 – 2011-04-06 05:45:01