14

我想知道为什么人们似乎更喜欢:input作为inputjQuery 选择器?基本上,这两行似乎做同样的事情:

$('input:first').focus()
$(':input:first').focus()

但是第二个版本使用更广泛,我不知道为什么。此外,:input根据这个基准,选择器似乎更慢:http: //jsperf.com/input-vs-input/2

4

3 回答 3

22

:input是 jQuery 的伪选择器,包括<buttons>,<textarea>

input是一个严格匹配的标签匹配<input>

关于此附加说明提供了:input丰富的信息:

因为 :input 是一个 jQuery 扩展而不是 CSS 规范的一部分,所以使用查询:input不能利用原生 DOMquerySelectorAll()方法提供的性能提升。要在使用:inputto 选择元素时获得最佳性能,首先使用纯 CSS 选择器选择元素,然后使用.filter(":input").

--来自https://api.jquery.com/input-selector/

于 2013-02-13T21:46:35.217 回答
4

input只是输入元素选择器。 :input还选择textareaselectbutton(表单控件)。

这不一定是偏好问题,因为实际上它们做的事情有些不同。

于 2013-02-13T21:46:30.400 回答
1

:input选择所有输入、文本区域、选择和按钮元素,而input只选择带有输入标签的元素。

于 2013-02-13T21:46:32.500 回答