นี่อาจจะค่อนข้างง่าย
ฉันต้องการที่จะเลือกองค์ประกอบทั้งหมดของชั้นได้รับthisClass
ยกเว้นที่ id thisId
คือ
เช่นสิ่งที่เทียบเท่ากับ (ที่ไหน - / ลบหมายถึงลบ):
$(".thisClass"-"#thisId").doAction();
นี่อาจจะค่อนข้างง่าย
ฉันต้องการที่จะเลือกองค์ประกอบทั้งหมดของชั้นได้รับthisClass
ยกเว้นที่ id thisId
คือ
เช่นสิ่งที่เทียบเท่ากับ (ที่ไหน - / ลบหมายถึงลบ):
$(".thisClass"-"#thisId").doAction();
คำตอบ:
ใช้: ไม่ได้เลือก
$(".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เช่นตัวอย่างต่อไปนี้เพื่อลบรายการที่มี id, id ที่มีคำเฉพาะ, id ที่ขึ้นต้นด้วยคำ, ฯลฯ ... ดูhttp://www.w3schools.com/jquery/jquery_ref_selectors . aspสำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือก jQuery
เพิกเฉยตามรหัสที่แน่นอน:
$(".thisClass").not('[id="thisId"]').doAction();
ไม่ต้องสนใจ ID ที่มีคำว่า "Id"
$(".thisClass").not('[id*="Id"]').doAction();
ไม่สนใจ ID ที่ขึ้นต้นด้วย "my"
$(".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/
การใช้.not()
วิธีการด้วยการเลือกองค์ประกอบทั้งหมดก็เป็นตัวเลือกเช่นกัน
วิธีนี้อาจมีประโยชน์หากคุณต้องการดำเนินการอื่นกับองค์ประกอบนั้นโดยตรง
$(".thisClass").not($("#thisId")[0].doAnotherAction()).doAction();