Câu trả lời:
Sử dụng : không chọn .
$(".thisclass:not(#thisid)").doAction();
Nếu bạn có nhiều id hoặc bộ chọn, chỉ cần sử dụng dấu phân cách dấu phẩy, ngoài ra:
(".thisclass:not(#thisid,#thatid)").doAction();
All selectors are accepted inside :not(), for example: :not(div a) and :not(div,a)
vì vậy chỉ cần sử dụng các bộ chọn được phân tách bằng dấu phẩy để thực hiện nhiều(".thisclass:not(#thisid,#thatid)").doAction();
Hoặc dùng phương thức .not ()
$(".thisClass").not("#thisId").doAction();
.not()
không phải là một bộ chọn. Đó là một chức năng. Nhưng cũng có :not()
bộ chọn như đề cập câu trả lời khác.
Bạn có thể sử dụng hàm .not như các ví dụ sau để xóa các mục có id chính xác, id chứa một từ cụ thể, id bắt đầu bằng một từ, v.v ... xem http://www.w3schools.com/jquery/jquery_Vf_selector .asp để biết thêm thông tin về bộ chọn jQuery.
Bỏ qua bởi ID chính xác:
$(".thisClass").not('[id="thisId"]').doAction();
Bỏ qua ID có chứa từ "Id"
$(".thisClass").not('[id*="Id"]').doAction();
Bỏ qua ID bắt đầu bằng "của tôi"
$(".thisClass").not('[id^="my"]').doAction();
Tôi sẽ chỉ đưa ra câu trả lời của JS (ES6), trong trường hợp ai đó đang tìm kiếm nó:
Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
doSomething(el);
}
Cập nhật (điều này có thể đã có thể khi tôi đăng câu trả lời ban đầu, nhưng dù sao hãy thêm nó ngay bây giờ):
document.querySelectorAll(".myClass:not(#myId)").forEach((el,i) => {
doSomething(el);
});
Điều này được loại bỏ việc Array.from
sử dụng.
document.querySelectorAll
trả về a NodeList
.
Đọc ở đây để biết thêm về cách lặp lại trên đó (và những thứ khác): https://developer.mozilla.org/en-US/docs/Web/API/NodeList
$(".thisClass[id!='thisId']").doAction();
Tài liệu về các công cụ chọn: http://api.jquery.com/carget/selector/