Есть ли селектор атрибута "или", например, input [type = button | text]? - PullRequest
38 голосов
/ 12 мая 2011

Я пытаюсь выделить все input элементы на странице, но не те, которые имеют тип image, button или submit. Сначала мне пришло в голову выбрать все элементы input типа text, затем все типы checkbox и т. Д.

Однако это не очень элегантно. Мне было интересно, есть ли здесь лучшая техника. Что было бы полезно, так это селектор типа input[type=text|checkbox|radio|password|etc], но, похоже, он недоступен.

Я знаю, что могу также выбрать все input s и затем отфильтровать их, используя .filter(), но есть ли более общий селектор для выбора элементов, имеющих один из списка атрибутов?

Ответы [ 5 ]

48 голосов
/ 12 мая 2011

Поскольку вы хотите включить все , за исключением нескольких типов, попробуйте следующее:

$('input:not([type=image],[type=button],[type=submit])')
28 голосов
/ 12 мая 2011
$('input[type=text], input[type=checkbox], input[type=radio]').stuff();

или (взято из комментариев)

$('input:not([type=image],[type=button],[type=submit]')
5 голосов
/ 12 мая 2011

В CSS вы можете использовать селекторы, такие как:

input[type=text],input[type=checkbox],input[type=radio],input[type=password]

возможно, это работает и в jQuery.

0 голосов
/ 31 декабря 2017

Приведенные выше ответы не совсем верны.

Когда в зависимости от id (#) эти методы кажутся неудачными.

По моему опыту, нам нужно добавить идентификатор для каждого оператора or.

Вот так:

$('#id input[type=text], #id input[type=checkbox], ...
0 голосов
/ 22 января 2017

Я знаю, что он старый, но мне кажется, что лучшим изящным решением для этого было бы дать им общий класс, а затем использовать его в качестве селектора?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...