Ответы:
Используйте : не селектор .
$(".thisclass:not(#thisid)").doAction();
Если у вас несколько идентификаторов или селекторов, просто используйте разделитель запятой, кроме того:
(".thisclass:not(#thisid,#thatid)").doAction();
All selectors are accepted inside :not(), for example: :not(div a) and :not(div,a)
так что просто используйте селекторы, разделенные запятыми, чтобы сделать несколько(".thisclass:not(#thisid,#thatid)").doAction();
.not()
не селектор Это функция. Но есть и :not()
селектор, как и в других ответах.
Вы можете использовать функцию .not, как в следующих примерах, чтобы удалить элементы с точным идентификатором, идентификатором, содержащим определенное слово, идентификатором, начинающимся со слова, и т. Д ... см. Http://www.w3schools.com/jquery/jquery_ref_selectors .asp для получения дополнительной информации о селекторах jQuery.
Игнорировать по точному идентификатору:
$(".thisClass").not('[id="thisId"]').doAction();
Игнорировать идентификаторы, содержащие слово «Id»
$(".thisClass").not('[id*="Id"]').doAction();
Игнорировать идентификаторы, которые начинаются с "мой"
$(".thisClass").not('[id^="my"]').doAction();
Я просто добавлю ответ JS (ES6) на тот случай, если его кто-то ищет:
Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
doSomething(el);
}
Обновление (это могло быть возможно, когда я опубликовал исходный ответ, но в любом случае добавил это):
document.querySelectorAll(".myClass:not(#myId)").forEach((el,i) => {
doSomething(el);
});
Это избавляет от Array.from
использования.
document.querySelectorAll
возвращает NodeList
.
Прочитайте здесь, чтобы узнать больше о том, как выполнять итерации (и другие вещи): https://developer.mozilla.org/en-US/docs/Web/API/NodeList
$(".thisClass[id!='thisId']").doAction();
Документация по селекторам: http://api.jquery.com/category/selectors/