我已经开始使用Wijmo工具包,并且在其文档页面中遇到了很多与此类似的选择器示例:
$(":input[type='radio']").wijradio();
我会这样写我的:
$('input[type=radio]').wijradio();
这些都一样吗?或者我缺少什么?
请注意,上面有两个区别:第一个选择器以冒号作为前缀,并为输入类型加引号。
Answers:
:input
是jQuery扩展,同时input
是CSS选择器。
textarea
,button
和select
元素将由前者匹配,但不会由后者匹配。
后者速度更快,因此将其用于您的特定radio
示例。使用:input
当你想“的所有表单元素”,即使他们没有严格的<input>
标签。即使在这种情况下,建议还是先使用标准CSS选择器,然后再使用.filter(':input')
该选择器。
因为:input是jQuery扩展,而不是CSS规范的一部分,所以使用:input的查询无法利用本机DOM querySelectorAll()方法提供的性能提升。为了在使用:input选择元素时达到最佳性能,请首先使用纯CSS选择器选择元素,然后使用.filter(“:input”)。
在1.7.2源中,:input过滤器针对nodeName测试一个正则表达式:
input: function( elem ) {
return (/input|select|textarea|button/i).test( elem.nodeName );
},
[type=]
,:input
因为如果我要寻找一种特定的类型,那么使用它:input
来获取所有这些似乎很漫长。对于纯CSS选择器,我的理解是引号是标准的,但浏览器是宽容的。您可以快速与/测试它没有在这里reference.sitepoint.com/css/css3attributeselectors/demo
first select the elements using a pure CSS selector, then use .filter(":input").
吗?
的 $("input")
选择器将选择类型的输入唯一元素
而 $(":input")
选择器将捕获所有输入元素(例如textarea,select,input等)
有关更多信息,请访问有关:input
选择器的jQuery官方文档,网址为:
:input
选择器,而另一个是通用Element
选择器。