Ответ 1
Используйте : не селектор.
$(".thisclass:not(#thisid)").doAction();
Если у вас несколько идентификаторов или селекторов, просто используйте разделитель запятой, кроме того:
(".thisclass:not(#thisid,#thatid)").doAction();
Это, наверное, довольно просто.
Я хочу выделить все элементы данного класса thisClass
, кроме тех, где id thisId
.
то есть. что-то эквивалентное (где -/минус подразумевает удаление):
$(".thisClass"-"#thisId").doAction();
Используйте : не селектор.
$(".thisclass:not(#thisid)").doAction();
Если у вас несколько идентификаторов или селекторов, просто используйте разделитель запятой, кроме того:
(".thisclass:not(#thisid,#thatid)").doAction();
Или возьмите метод .not()
$(".thisClass").not("#thisId").doAction();
$(".thisClass[id!='thisId']").doAction();
Документация по селекторам: http://api.jquery.com/category/selectors/
Я просто поставлю ответ JS (ES6), если кто-то его ищет:
Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
doSomething(el);
}
Вы можете использовать функцию .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();
Использование метода .not()
при выборе всего элемента также является опцией.
Этот способ может быть полезен, если вы хотите сделать другое действие с этим элементом напрямую.
$(".thisClass").not($("#thisId")[0].doAnotherAction()).doAction();