2014-01-20 82 views
1

我一直在玩弄自定義html屬性,item-id和類似的東西,並使用它來使我的代碼更具可讀性(對我而言)。這是一個相當不錯的技巧,但我可以像用戶數據id屬性一樣簡單。我只是想知道是否有一個合法的理由,爲什麼這樣做會很糟糕。構建我自己的html屬性是不好的做法嗎?

例子:

<input type="submit" value="submit" custom-item-id="137" /> 

謝謝!

+3

使用HTML 5'數據'前綴屬性 – Satpal

+0

和[是它認爲不好的做法,使用非標準HTML屬性?](HTTP:/ /stackoverflow.com/questions/2117933/is-it-considered-bad-practice-to-use-non-standard-html-attributes?rq=1) –

+0

和[不好的做法是添加非標準屬性到DOM元素? - HTML/Javascript](http://stackoverflow.com/questions/4909527/is-it-bad-practice-to-add-non-standard-attributes-to-dom-elements-html-javasc?rq=1) –

回答

4

你會想要爲自定義屬性做類似data-*的事情。 jQuery具有內置的功能來處理這些屬性,並且它是標準的。

< input type="submit" value="submit" data-custom-item-id="137" /> 

這裏是一個博客帖子討論數據屬性:http://ejohn.org/blog/html-5-data-attributes/

+0

Thx授權的回覆,但我只是想知道爲什麼它可以使用data-XXX,而不只是自己構建自己的屬性。這只是一個約定,還是會打破跨瀏覽器兼容性或類似的東西? – OneThreeSeven

+0

它不僅僅是一個約定 - 它實際上在HTML5規範中,並且用於任何需要定製html屬性的地方 - http://www.w3.org/html/wg/drafts/html/master/dom.html#屬性 –

3

如果你data-前綴他們可以創建自己的屬性:

<input type="submit" value="submit" data-item-id="137" /> 

即使jQuery的支持這個帶有一個內置的方法,它允許(在這個例子中$('input').data('item-id'))與data()函數來獲取屬性

W3C Reference

自定義數據屬性的屬性沒有命名空間的名字開始機智h字符串「data-」,在連字符後至少有一個字符,是XML兼容的,並且不包含U + 0041至U + 005A(拉丁大寫字母A至拉丁大寫字母Z)範圍內的字符。

自定義數據屬性用於存儲專用於頁面或應用程序的自定義數據,但沒有更適當的屬性或元素。

+0

@ TimothyL.J.Stewart它只是說'data-'必須尊重XML命名格式(ascii字母,數字,但不在開頭,破折號等)與「XML兼容」提及(有鏈接關於該術語的文檔),但不允許使用大寫字母,這是在XML兼容標籤/屬性 –

相關問題