Ответ 1
Поскольку вы хотите включить все, кроме нескольких конкретных типов, попробуйте следующее:
$('input:not([type=image],[type=button],[type=submit])')
Я пытаюсь выбрать все элементы input
на странице, но не те, которые имеют тип image
, button
или submit
. Сначала мне приходилось выбирать все input
элементы типа text
, затем все типа checkbox
и т.д.
Однако это не очень элегантно. Мне было интересно, есть ли здесь какая-нибудь лучшая техника. Что было бы полезно, например, селектор типа input[type=text|checkbox|radio|password|etc]
, но это, похоже, не доступно.
Я знаю, что я также могу выбрать все input
, а затем отфильтровать их с помощью .filter()
, но есть ли более общий селектор для выбора элементов, имеющих один из списков атрибутов?
Поскольку вы хотите включить все, кроме нескольких конкретных типов, попробуйте следующее:
$('input:not([type=image],[type=button],[type=submit])')
$('input[type=text], input[type=checkbox], input[type=radio]').stuff();
или (взято из комментариев)
$('input:not([type=image],[type=button],[type=submit]')
В CSS вы можете иметь такие селектора, как:
input[type=text],input[type=checkbox],input[type=radio],input[type=password]
возможно, это работает и в jQuery.
Я знаю его старый, но я считаю, что лучшим элегантным решением для этого было бы дать им общий класс, а затем использовать его как селектор?
Вышеуказанные ответы не совсем верны.
В зависимости от id (#) эти методы, похоже, терпят неудачу.
По моему опыту нам нужно добавить id для каждого оператора or
.
Так же:
$('#id input[type=text], #id input[type=checkbox], ...