jQuery - множественные селекторы в: not ()? - PullRequest
45 голосов
/ 29 мая 2011

Не могу заставить работать следующее:

$('input:not([type=radio][type=checkbox])').live('click', function() {
    alert("You haven't clicked a radio or checkbox!");
});

Пробовал несколько разных синтаксисов, может кто-нибудь помочь мне в этом.

Приветствия
Charlie

Ответы [ 3 ]

79 голосов
/ 29 мая 2011

Вы путаете мультиселектор с мультиселектором .Вы должны написать:

$("input:not([type=radio], [type=checkbox])");

Селектор множественных атрибутов [type=radio][type=checkbox] соответствует элементам, атрибуты type которых равны оба radio и checkbox, чего не может быть в этой вселенной.

4 голосов
/ 29 мая 2011

Синтаксис внутри not() идентичен обычному синтаксису селектора, поэтому, если вы хотите сопоставить вещи, которые не относятся ни к одной из этих вещей, вы используете селектор в not, который будет соответствовать обоим (так как по сути выотрицание селектора).Как ты это делаешь?Точно так же, как вы применяете стили к нескольким селекторам одновременно в CSS с запятой, как показано ниже:

$('input:not([type=radio],[type=checkbox])')

Это должно выбрать все входные данные не [type=radio] и не [type=checkbox]

0 голосов
/ 01 февраля 2018

Вы также можете исключить такие элементы:

$('input').not('[type=radio], [type=checkbox]').live('click', function() {
    alert("You haven't clicked a radio or checkbox!");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...