:password
действительно полезен только в API jQuery для симметрии / полноты, поскольку он точно такой же, как [type=password]
.
Но :text
- это не то же самое, что [type=text]
, поскольку он также соответствует элементам input
, которые не имеют атрибута type
(и поэтому обрабатываются браузером как type="text"
). [type=text]
не сделал бы этого. Вам придется использовать input[type=text]
в сочетании с input:not([type])
.
Аналогично, :button
- это не просто input[type=button]
, оно также соответствует button
элементам.
Аналогично, :input
- это не просто синоним input
, он соответствует элементам input
, textarea
, select
и button
.
Таким образом, в общем случае их цель - помочь программистам не забыть включить вещи, которые они, вероятно, намеревались включить (например, input
элементы без type
) и / или краткость.
Циклы вернуться к :password
, это просто для симметрии.