JQuery: селектор not() в сочетании с атрибутом Содержит селектор

Итак, у меня есть большая форма, и мне нужно выбрать все элементы с определенным идентификатором в их значении id.

$("[id*=some-value]")

Это прекрасно работает! Теперь мне нужно отфильтровать из этих результатов любые элементы с другим идентификатором ключа в своих значениях id

$("[id*=some-value]:not([id*=some-other-value])")

который, очевидно, не работает для меня.

В настоящее время единственным фильтром, который я фильтрую, является флажок, поэтому я могу просто использовать

$("[id*=add-contact-form]:not(:checkbox)")

однако мне все равно хотелось бы знать, как объединить два метода селектора.

Ответы

Ответ 1

Что у вас уже есть, кажется, отлично работает для меня?

Я предлагаю взглянуть на ваш код и посмотреть, есть ли какая-то основная проблема, препятствующая работе селектора jQuery.

Посмотрите

Ответ 2

Прежде всего, если ваш id содержит "some-value" буквально, тогда он автоматически исключает "some-other-value".

Чтобы иметь возможность подбирать другие элементы, id должен совпадать с точкой: "some-other-value" → " some-value -other" ( см., как совпадают первые 2 части)

Вы можете попробовать следующее:

$("[id*=add-contact-form]").not(":checkbox");

или

$("[id*=some-value]").not("[id*=some-value-other]");

DEMO

Ответ 3

Это работает для меня. Простой, меньший код и привлекательный.

$('*[id=some_id] option[value!=]')

Он выберет все параметры, у которых атрибут value установлен на что-то и проигнорирует с пустыми.