Відповіді:
Використовуйте : не селектор .
$(".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 ()
$(".thisClass").not("#thisId").doAction();
.not()
не вибір. Це функція. Але є також :not()
вибір, як і інші відповіді.
Ви можете використовувати функцію .not, як у наведених нижче прикладах, для видалення елементів, які мають точний ідентифікатор, id, що містить певне слово, id, що починається зі слова тощо, див. 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
повертає a NodeList
.
Прочитайте тут, щоб дізнатися більше про те, як повторити його (та інші речі): https://developer.mozilla.org/en-US/docs/Web/API/NodeList
$(".thisClass[id!='thisId']").doAction();
Документація на селектори: http://api.jquery.com/category/selectors/