2012-11-16 75 views
2

我覺得有一種主觀問題。我有一個動作元素,並希望在綁定事件的代碼中引用它,我試圖在以下幾種聲明方式之間作出選擇:動作元素選擇器:class vs自定義HTML5屬性

1)第一個選項更加簡單明瞭,用於聲明和使用:

<a class="play">Play</a> 

('#menu .play').bind('click',...) 

2),但第二個選項明確地顯示屬性

<a data-action="play">Play</a> 

('#menu [data-action="play"]').bind('click',...) 

我應該選擇哪一個(我不打算在CSS中使用的選擇,只在JS代碼)的目的是什麼?

回答

2

如果你不使用它的風格,我傾向於data-action="play",因爲它更好地描述了目的(行動是戲劇)。但是,如果您打算獲取像這樣的多個元素並循環播放它們,我會使用class="play",因爲那樣您就再次將它們視爲一類同類的東西..或者使用這兩個獲取他們和數據行動來驗證,不會出現錯誤那裏。

+1

儘管可能缺乏語義,但我總是儘可能地使用類,儘管它可能比屬性選擇器快20%左右:http://jsperf.com/id-selector-vs-屬性選擇器/ 5 –

+0

我同意類選擇器比屬性選擇器更快(除非可能在相同標籤上有很多類),但如果#menu中沒有成千上萬的標籤,不想太頻繁地找到它們,我相信語義學可以是一個很大的優點。 – TonioElGringo

+0

好的,謝謝你的想法=) – WHITECOLOR