การเลือกหลายคลาสด้วย jQuery


222

ฉันดูดีและไม่สามารถหาวิธีเลือกองค์ประกอบทั้งหมดที่ตรงกับคลาสที่ต้องการในคำสั่งตัวเลือก jQuery เดียวเช่นนี้

$('.myClass', '.myOtherClass').removeClass('theclass');

ความคิดใด ๆ เกี่ยวกับวิธีการบรรลุสิ่งนี้? ตัวเลือกอื่น ๆ เท่านั้นที่จะทำ

$('.myClass').removeClass('theclass');
$('.myOtherClass').removeClass('theclass');

แต่ฉันทำอย่างนี้กับคลาสไม่กี่ครั้งดังนั้นจึงต้องใช้รหัสมาก

คำตอบ:


402

สิ่งนี้น่าจะใช้ได้:

$('.myClass, .myOtherClass').removeClass('theclass');

คุณต้องเพิ่มตัวเลือกหลายตัวในอาร์กิวเมนต์แรกให้กับ $ () มิฉะนั้นคุณจะให้บริบท jQuery ในการค้นหาซึ่งไม่ใช่สิ่งที่คุณต้องการ

มันเหมือนกับที่คุณทำใน CSS


3
จะเกิดอะไรขึ้นถ้าฉันต้องการจับคู่เฉพาะเมื่อองค์ประกอบแต่ละรายการมีคลาสที่ระบุทั้งหมดหรือไม่
IsmailS

12
ถูกต้องฉันได้หนึ่งstackoverflow.com/q/1041344/148271นี้ โดยพื้นฐานฉันจะต้องเข้าร่วมตัวเลือกทั้งหมดสำหรับจุดตัด ชอบ$(".myClass.myOtherClass")
Ismails

เพิ่มเติมเกี่ยวกับการจัดกลุ่ม CSS: W3C "การจัดกลุ่ม"
skrounge

@wal: เครื่องหมายจุลภาคนั้นจำเป็นใน CSS เมื่อชี้ไปที่คลาสทั้งสอง โดยไม่ต้องจุลภาคก็ต้องการการอ้างอิงถึงที่อยู่ที่ไหนสักแห่งภายใน.myOtherClass .myClass
geekuality

คำตอบนี้ไม่ได้ตอบคำถามด้วยวิธีนี้คุณกำลังสร้างหรือ !!!! ไม่และ !!
Mahmoud Khateeb


25

ฉันใช้ $('.myClass.myOtherClass').removeClass('theclass');


34
นี้คือถ้าองค์ประกอบ HTML มีหลายชั้นเรียนและคุณต้องการที่จะลบระดับสำหรับองค์ประกอบเท่านั้นที่มีทั้งหมดของชั้นเรียนเหล่านั้น ตัวอย่างอื่น ๆ จะลบคลาสออกจากองค์ประกอบใด ๆ ที่มีคลาสใด ๆ ที่คั่นด้วยเครื่องหมายจุลภาค ตัวอย่างของคุณจะใช้ได้ก็ต่อเมื่อองค์ประกอบ HTML ของฉันมีทั้งคู่เช่น<div class="myClass myOtherClass theclass">
Kezzer

0
// Due to this Code ): Syntax problem.    
$('.myClass', '.myOtherClass').removeClass('theclass'); 

ตามเอกสาร jQuery: https://api.jquery.com/multiple-selector/

เมื่อสามารถเลือกหลายคลาสด้วยวิธีนี้:

jQuery(“selector1, selector2, selectorN”) // double Commas. // IS valid.
jQuery('selector1, selector2, selectorN') // single Commas. // Is valid.

โดยใส่ตัวเลือกทั้งหมดไว้ใน '... ' 'หรือเครื่องหมายจุลภาคเดี่ยว "... "

ดังนั้นในกรณีของคุณวิธีที่ถูกต้องในการเรียกหลายคลาสคือ:

$('.myClass', '.myOtherClass').removeClass('theclass'); // your Code // Invalid.
$('.myClass , .myOtherClass').removeClass('theclass');  // Correct Code // Is valid.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.