jQuery选择器中前导冒号的目的是什么?

Mor*_*ner 79 jquery jquery-selectors

我已经开始使用Wijmo工具包了,并且在他们的文档页面中遇到了很多与此相似的示例选择器:

$(":input[type='radio']").wijradio();
Run Code Online (Sandbox Code Playgroud)

我这样写过我的:

$('input[type=radio]').wijradio();
Run Code Online (Sandbox Code Playgroud)

这些是做同样的还是我缺少的东西?

请注意,上面有两个不同之处:第一个选择器以冒号为前缀,并为输入类型提供引号.

Dav*_*tka 82

:input是一个jQuery扩展,input而是一个CSS选择器.

textarea,buttonselect元素将由前者匹配,而后者不匹配.

后者更快,所以请将它用于您的具体radio示例.:input当您想要"所有表单元素"时使用,即使它们不是严格<input>标记.即使在这种情况下,建议首先使用标准CSS选择器,然后.filter(':input')在该集合上使用.

因为:input是jQuery扩展而不是CSS规范的一部分,使用:input的查询无法利用本机DOM querySelectorAll()方法提供的性能提升.要在使用时获得最佳性能:输入选择元素,首先使用纯CSS选择器选择元素,然后使用.filter(":input").

在1.7.2源代码中,:input过滤器针对nodeName测试正则表达式:

input: function( elem ) {
            return (/input|select|textarea|button/i).test( elem.nodeName );
},
Run Code Online (Sandbox Code Playgroud)


Yar*_* U. 17

$("input")选择器将选择类型的输入唯一元素

$(":input")选择器将捕获所有的输入元件(诸如文本区域,选择,输入等)

有关更多信息,请访问有关:input选择器的jQuery官方文档:

http://api.jquery.com/input-selector/


Sha*_*oli 6

所述:input选择器选择基本上所有form的控制(输入,文本区域,选择和按钮元素),其中作为input选择器选择由标签名的所有元素input.

由于单选按钮是一个form元素,它也使用input标签,因此它们都可用于选择单选按钮.然而,两种方法都不同于它们找到元素的方式,因此每种方法都具有不同的性能益