2012-11-16 77 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