Подтвердить что ты не робот

Какова цель ведущего двоеточия в селекторе jQuery?

Я начал использовать набор инструментов Wijmo и встретил довольно много примеров селекторов, похожих на это на своих страницах документации:

$(":input[type='radio']").wijradio();

Я написал бы вот так:

$('input[type=radio]').wijradio();

Делают ли они то же самое или есть что-то, что мне не хватает?

Обратите внимание, что существует два отличия: первый селектор имеет префикс двоеточия и имеет кавычки для типа ввода.

4b9b3361

Ответ 1

:input является расширением jQuery, тогда как input является селектором CSS.

textarea, button и select элементы будут сопоставляться с первым, но не последним.

Последний быстрее, поэтому используйте его для своего конкретного примера radio. Используйте :input, когда вы хотите "все элементы формы", даже если они не являются строго тегами <input>. Даже в этом случае рекомендуется сначала использовать стандартный селектор CSS, а затем использовать .filter(':input') на этом наборе.

Потому что: input - это расширение jQuery, а не часть CSS спецификации, запросы с использованием: input не могут воспользоваться преимуществами повышение производительности, обеспечиваемое встроенным DOM-запросомSelectorAll() метод. Для достижения наилучшей производительности при использовании: вход для выбора элементы, сначала выберите элементы, используя чистый селектор CSS, затем используйте .filter( ": input" ).

В источнике 1.7.2 входной фильтр проверяет регулярное выражение на nodeName:

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

Ответ 2

Селектор $("input") будет выбирать только элементы ввода типа

в то время как селектор $(":input") поймает все элементы ввода (такие как textarea, select, input и т.д.)

для получения дополнительной информации, обратитесь к официальной документации jQuery о селекторе :input по адресу:

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

Ответ 3

Селектор :input в основном выбирает все элементы управления form (элементы ввода, textarea, select и button), где в качестве селектора input выбирает все элементы по имени тега input.

Поскольку радиокнопка представляет собой элемент form, а также использует тег input, поэтому они оба могут использоваться для выбора переключателя. Однако оба подхода отличаются тем, как они находят элементы, и, следовательно, каждый из них имеет разные преимущества в производительности.