JQuery - Несколько селекторов в a: not()?

Кажется, я не могу работать:

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

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

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

Ответ 1

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

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

Множественный селектор атрибутов [type=radio][type=checkbox] соответствует элементам, атрибуты type равны как radio, так и checkbox, что не может произойти в этом юниверсе.

Ответ 2

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

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

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