การลบหลายคลาส (jQuery)


615

มีวิธีใดที่ดีกว่าในการเขียนสิ่งนี้:

$('element').removeClass('class1').removeClass('class2');

ฉันไม่สามารถใช้removeClass();เพราะจะเป็นการลบคลาสทั้งหมดที่ฉันไม่ต้องการ

คำตอบ:


1128
$("element").removeClass("class1 class2");

จากremoveClass()พารามิเตอร์คลาส:

อย่างน้อยหนึ่งคลาส CSS ที่จะลบออกจากองค์ประกอบเหล่านี้จะถูกคั่นด้วยช่องว่าง



19

.removeClass()เอกสารjQuery

อย่างน้อยหนึ่งคลาส CSS ที่จะลบออกจากองค์ประกอบเหล่านี้จะถูกคั่นด้วยช่องว่าง


17

เอกสารพูดว่า:

class (Optional) String
อย่างน้อยหนึ่งคลาส CSS ที่จะลบออกจากองค์ประกอบเหล่านี้จะถูกคั่นด้วยช่องว่าง

ตัวอย่าง:

ลบคลาส 'สีน้ำเงิน' และ 'ใต้' ออกจากองค์ประกอบที่ตรงกัน

$("p:odd").removeClass("blue under");

12

มีหลายวิธีที่สามารถทำได้!

jQuery

  1. ลบคลาสทั้งหมด
    $("element").removeClass();
    หรือ
    $("#item").removeAttr('class');
    หรือ
    $("#item").attr('class', '');
    OR
    $('#item')[0].className = '';

  2. ลบหลายคลาส
    $("element").removeClass("class1 ... classn");
    หรือ
    $("element").removeClass("class1").removeClass("...").removeClass("classn");

Vanilla Javascript

  1. ลบคลาสทั้งหมด

// remove all items all class  
const items = document.querySelectorAll('item');
for (let i = 0; i < items.length; i++) {
    items[i].className = '';
}

  1. ลบหลายชั้น

// only remove all class of first item
const item1 = document.querySelector('item');
item1.className = '';



1

คุณต้องแยกชั้นเรียนที่คุณต้องการลบด้วยช่องว่าง$('selector').removeClass('class1 class2');


0

ตั้งแต่ jQuery 3.3.0เป็นไปได้ที่จะส่งผ่านอาร์เรย์ไปยัง.addClass(), removeClass()และtoggleClass()ซึ่งทำให้ง่ายขึ้นหากมีเหตุผลใด ๆ ที่กำหนดว่าควรเพิ่มหรือลบคลาสใดเนื่องจากคุณไม่จำเป็นต้องยุ่งกับสตริงที่คั่นด้วยช่องว่าง

$("div").removeClass(["class1", "class2"]); 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.