元素的Javascript选择器/非CSS选择器
作为一名在团队中工作的前端开发人员,我发现自己多次解决了一个重复出现的问题。 例如,我们的许多前端javascript代码都是使用jQuery和CSS选择器编写的(主要针对CSS“类”)。问题是,很多时候,另一个正在修复CSS代码的开发人员会删除一个类,或者更改将其嵌套在另一个元素下的DOM元素,从而导致JS代码中断 为了防止出现这种情况,我的想法是为我们想要用于Javascript的每个元素使用/添加一个“datajs”属性。但是,我不确定这样编写的jQuery选择器的性能:元素的Javascript选择器/非CSS选择器,javascript,jquery,css,jquery-selectors,css-selectors,Javascript,Jquery,Css,Jquery Selectors,Css Selectors,作为一名在团队中工作的前端开发人员,我发现自己多次解决了一个重复出现的问题。 例如,我们的许多前端javascript代码都是使用jQuery和CSS选择器编写的(主要针对CSS“类”)。问题是,很多时候,另一个正在修复CSS代码的开发人员会删除一个类,或者更改将其嵌套在另一个元素下的DOM元素,从而导致JS代码中断 为了防止出现这种情况,我的想法是为我们想要用于Javascript的每个元素使用/添加一个“datajs”属性。但是,我不确定这样编写的jQuery选择器的性能: $('[data
$('[data-js="my_js_selector"]').click();
我的另一个想法是向dom元素添加一个js特定的类,该元素以某种方式由Javascript操纵:
<a href="lol.com" class="js-link">link</a>
然后用$('.js link')简单地调用它。单击()
如果您只查看HTML并告诉某些元素附加了一些Javascript操作,而不实际查看JS代码,那就太好了
这是个好主意吗?或者,还有其他一些最佳实践可以将JS触发与CSS样式区分开来吗 在(SMACSS)中,Jonathan Snook教授“state”类,如您建议使用的.js link
是最好的方法
相关讨论见以下章节:
子模块样式在渲染时应用于元素,然后
再也不会改变了。但是,状态样式将应用于
元素来指示页面仍在运行时状态的更改
在客户端计算机上
例如,单击选项卡将激活该选项卡。因此
处于活动状态或选项卡处于活动状态是合适的。单击对话框
关闭按钮将隐藏对话框。因此,隐藏的类是
合适
这与两位评论者的说法相矛盾。CSS代码和类应该是灵活的;CSS开发人员应该能够重构和改进代码,而不用担心破坏与表示无关的功能
@ArunPJohny提出的观点支持国家级方法。不幸的是,与识别任意自定义属性(如foo-
)相比,引擎没有优化以识别数据-
属性。请看这里的性能:这对性能有害!!!如果您没有任何选择,可以使用带前缀的类名,如js classname
,请参见您不应该让他们更改您指定的类。类在jQuery中也变成了标记,所以它们变成了变量中所期望的值。一个好的实践是尊重和强制尊重所使用的类及其目的。使用独特而怪异的类名,一个“.wierdClass”选择器来选择你的特性,如果他们不尊重你的类,就踢他们的屁股。站点中的类必须是以前定义的约定。您好,David。没有人天生就有无限的知识。如果我知道答案,我就不会问这个问题了。没有什么能让我认为datajs是一个javascript选择器,正如我所说的,这只是一个想法,而“对主题的理解有缺陷”正是我问这个问题的原因。是的。回答很好!谢谢,我将查看文章以了解更多信息:)