jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在jQuery中,对所有选择器使用[name = X]是个坏主意吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用BACkbone,并决定我想要一种方法来区分绑定的 HTML元素和不绑定的 HTML元素.

所以我会写(在HAML中):

.container
  .title(name='title')
  .separator

正如您所看到的,动态元素很明显是标题.

这样做的原因是我可以搞乱风格并重命名类而不用担心破坏应用程序.它还意味着在模板中我可以告诉动态元素是什么,而无需与BACkbone View来回.

这意味着我使用$(‘[name = title]’,this.el)从代码中引用此元素.我想知道这是否缓慢,如果在任何地方使用都是一个明显的问题.我读过id最快.我正在使用项目列表,因此id不切实际.类如何与名称查找进行比较?

此外,如果您有关于跟踪HTML模板中的动态元素的建议,我很乐意听到它们.

供参

>我有了这个主意,因为我最初使用的是Backbone.ModelBinding插件,它使用动态元素的数据绑定属性,但我现在正在远离它.
>我正在使用COffeeScript,BACkbone和haml_coffee模板.
>我还读过$(this.el).find(‘[name = title]’)比为选择器提供上下文要快.

后续问题:

A convention for indicating whether an HTML element is referenced from JS code

更新了jsperf以测试所有建议:

http://jsperf.com/class-or-name-attr-lookup/3

解决方法

搜索DOM元素的name属性可能比类慢一点,因为需要Sizzle(jQuery使用的选择器引擎)需要解析选择器以确定需要找到的确切内容. Sizzle需要从字符串“[name = title]”确定它首先需要查看所有被搜索元素的“name”属性,并且该属性的值是“title”.然我已经读过Sizzle的速度非常快但我只能猜测它会比对DOM元素属性的本地JavaScript调用慢一些 – class(element.className) – value.

为了证实我的怀疑,我做了一个性能http://jsperf.com/class-or-name-attr-lookup.结果不是我在.find和.children调用中所怀疑的,但我上面所说的内容似乎至少在前两个例子中得到了支持.但是,我在使用最具体的选择器时看到了生产代码中的性能提升 – 例如.children而不是.find – 因为它没有循环不必要的元素.

此外,我前段时间做了一个测试,以阐明使用简单的选择器语法和一些更模糊和/或jQuery-ish语法之间的一些差异来比较我认为有趣的性能http://jsperf.com/id-id-vs-id-class/2.

我希望有些或任何一个可以帮助任何人.

@H_404_51@

大佬总结

以上是大佬教程为你收集整理的在jQuery中,对所有选择器使用[name = X]是个坏主意吗?全部内容,希望文章能够帮你解决在jQuery中,对所有选择器使用[name = X]是个坏主意吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。