我已经开始使用Wijmo工具包了,并且在他们的文档页面中遇到了很多与此相似的示例选择器:
$(":input[type='radio']").wijradio();
我这样写过我的话:
$('input[type=radio]').wijradio();
这些做同样的事情还是我缺少的东西?
请注意,上面有两个不同之处:第一个选择器以冒号为前缀,并且输入类型有引号。
答案 0 :(得分:79)
:input
是jQuery extension,而input
是CSS选择器。
textarea
,button
和select
元素将由前者匹配,但不与后者匹配。
后者更快,因此请将其用于特定的radio
示例。如果您需要“所有表单元素”,即使它们不是严格的:input
标记,也请使用<input>
。即使在这种情况下,建议首先使用标准的CSS选择器,然后在该集合上使用.filter(':input')
。
因为:input是jQuery扩展而不是CSS的一部分 规范,查询使用:输入无法利用 本机DOM querySelectorAll()提供的性能提升 方法。使用时输入要达到最佳性能:输入选择 元素,首先使用纯CSS选择器选择元素 使用.filter(“:input”)。
在1.7.2源代码中,:input过滤器针对nodeName测试正则表达式:
input: function( elem ) {
return (/input|select|textarea|button/i).test( elem.nodeName );
},
答案 1 :(得分:16)
$("input")
选择器将仅选择输入类型
而$(":input")
选择器将捕获所有输入元素(例如textarea,select,input等...)
有关详细信息,请访问以下:input
选择器的jQuery官方文档:
答案 2 :(得分:6)
:input
选择器基本上选择所有form
控件(输入,textarea,select和按钮元素),其中input
选择器按标记名称input
选择所有元素。
由于单选按钮是form
元素,并且它还使用input
标记,因此它们都可用于选择单选按钮。然而,两种方法都不同于它们找到元素的方式,因此每种方法都具有不同的性能益