javascript - 'duplicate' jQuery 伪类选择器的用途是什么?

标签 javascript jquery performance

使用pseudo-class selector

$( "input:password" )

似乎是一个等效但可能较慢的版本

$( 'input[type="password"]' )

(速度较慢,因为如链接的文档中所述,“:password 是 jQuery 扩展,而不是 CSS 规范的一部分,因此使用 :password 的查询不能接受利用 native DOM querySelectorAll() 方法提供的性能提升。")

这就提出了一个问题:这个伪类选择器的存在是否有明确的原因?它提供哪些潜在优势(如果有)?在什么情况下行为会有所不同?

最佳答案

:password实际上仅在 jQuery API 中用于对称性/完整性,因为它与 [type=password] 完全相同。

但是:text不仅与 [type=text] 相同,因为它还匹配没有 type 属性的 input 元素(并且因此浏览器将其视为 type="text")。 [type=text] 不会这样做。您必须将 input[type=text]input:not([type]) 结合使用。

同样,:button不仅仅是 input[type=button],它还匹配 button 元素。

同样,:input不仅仅是 input 的同义词,它还匹配 inputtextareaselectbutton 元素。

因此,在一般情况下,它们的目的是帮助程序员不要忘记包含他们可能想要包含的内容(例如没有 typeinput 元素),并且/或简洁。

循环回到:password,它只是为了对称。

关于javascript - 'duplicate' jQuery 伪类选择器的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59704933/

相关文章:

javascript - 我想在 jquery 中重复一个过程

javascript - 获取具有相同值的输入的长度

jquery - 使用 jQuery 1.2 中止文件上传

javascript - textarea文本未插入到php数据库mysql

android - 图实现Android

Java:在大字典中搜索字符串的非常快速的方法

jquery - 如何更快地加载JQuery?

javascript - 附加分离导航问题

javascript - 如何让元素在某个点后停止滚动?

javascript - 如何使标题在 wordpress 中保持粘性