我一直在玩弄自定義html屬性,item-id和類似的東西,並使用它來使我的代碼更具可讀性(對我而言)。這是一個相當不錯的技巧,但我可以像用戶數據id屬性一樣簡單。我只是想知道是否有一個合法的理由,爲什麼這樣做會很糟糕。構建我自己的html屬性是不好的做法嗎?
例子:
<input type="submit" value="submit" custom-item-id="137" />
謝謝!
我一直在玩弄自定義html屬性,item-id和類似的東西,並使用它來使我的代碼更具可讀性(對我而言)。這是一個相當不錯的技巧,但我可以像用戶數據id屬性一樣簡單。我只是想知道是否有一個合法的理由,爲什麼這樣做會很糟糕。構建我自己的html屬性是不好的做法嗎?
例子:
<input type="submit" value="submit" custom-item-id="137" />
謝謝!
你會想要爲自定義屬性做類似data-*
的事情。 jQuery具有內置的功能來處理這些屬性,並且它是標準的。
< input type="submit" value="submit" data-custom-item-id="137" />
這裏是一個博客帖子討論數據屬性:http://ejohn.org/blog/html-5-data-attributes/
Thx授權的回覆,但我只是想知道爲什麼它可以使用data-XXX,而不只是自己構建自己的屬性。這只是一個約定,還是會打破跨瀏覽器兼容性或類似的東西? – OneThreeSeven
它不僅僅是一個約定 - 它實際上在HTML5規範中,並且用於任何需要定製html屬性的地方 - http://www.w3.org/html/wg/drafts/html/master/dom.html#屬性 –
如果你data-
前綴他們可以創建自己的屬性:
<input type="submit" value="submit" data-item-id="137" />
即使jQuery的支持這個帶有一個內置的方法,它允許(在這個例子中$('input').data('item-id')
)與data()
函數來獲取屬性
自定義數據屬性的屬性沒有命名空間的名字開始機智h字符串「data-」,在連字符後至少有一個字符,是XML兼容的,並且不包含U + 0041至U + 005A(拉丁大寫字母A至拉丁大寫字母Z)範圍內的字符。
自定義數據屬性用於存儲專用於頁面或應用程序的自定義數據,但沒有更適當的屬性或元素。
@ TimothyL.J.Stewart它只是說'data-'必須尊重XML命名格式(ascii字母,數字,但不在開頭,破折號等)與「XML兼容」提及(有鏈接關於該術語的文檔),但不允許使用大寫字母,這是在XML兼容標籤/屬性 –
使用HTML 5'數據'前綴屬性 – Satpal
和[是它認爲不好的做法,使用非標準HTML屬性?](HTTP:/ /stackoverflow.com/questions/2117933/is-it-considered-bad-practice-to-use-non-standard-html-attributes?rq=1) –
和[不好的做法是添加非標準屬性到DOM元素? - HTML/Javascript](http://stackoverflow.com/questions/4909527/is-it-bad-practice-to-add-non-standard-attributes-to-dom-elements-html-javasc?rq=1) –