JQuery: выберите все элементы данного класса, за исключением определенного идентификатора

Это, наверное, довольно просто.

Я хочу выделить все элементы данного класса thisClass, кроме тех, где id thisId.

то есть. что-то эквивалентное (где -/минус подразумевает удаление):

$(".thisClass"-"#thisId").doAction();

Ответ 1

Используйте : не селектор.

$(".thisclass:not(#thisid)").doAction();

Если у вас несколько идентификаторов или селекторов, просто используйте разделитель запятой, кроме того:

(".thisclass:not(#thisid,#thatid)").doAction();

Ответ 4

Я просто поставлю ответ JS (ES6), если кто-то его ищет:

Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
    doSomething(el);
}

Ответ 5

Вы можете использовать функцию .not, например, следующие примеры, чтобы удалить элементы, имеющие точный идентификатор, идентификатор, содержащий определенное слово, идентификатор, начинающийся со слова, и т.д. см. http://www.w3schools.com/jquery/jquery_ref_selectors.asp для получения дополнительной информации о селекторах jQuery.

Игнорировать по Exact ID:

 $(".thisClass").not('[id="thisId"]').doAction();

Игнорировать идентификатор, содержащий слово "Id"

$(".thisClass").not('[id*="Id"]').doAction();

Игнорировать идентификатор, начинающийся с "my"

$(".thisClass").not('[id^="my"]').doAction();

Ответ 6

Использование метода .not() при выборе всего элемента также является опцией.

Этот способ может быть полезен, если вы хотите сделать другое действие с этим элементом напрямую.

$(".thisClass").not($("#thisId")[0].doAnotherAction()).doAction();