$( "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
的同义词,它还匹配 input
、textarea
、select
和 button
元素。
因此,在一般情况下,它们的目的是帮助程序员不要忘记包含他们可能想要包含的内容(例如没有 type
的 input
元素),并且/或简洁。
循环回到:password
,它只是为了对称。
关于javascript - 'duplicate' jQuery 伪类选择器的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59704933/