วิธีการลบคุณสมบัติ css ใน jQuery


197
if(prev_clicked)
{   
    $("#accordion li a.category").css('background-image', 'url("img/off_all_channel.png")');                    
    $("#accordion li a.comment").css('background-image', 'url("img/on_all_online.png")');                   
    $(".icha0").removeProperty("background-color");
    $(".icha0").removeProperty("opacity");
}
else
{   
   $(".icha0").css("background-color","#D5D5D2");
   $(".icha0").css("opacity","0.70");
}

ฉันพยายามลบคุณสมบัติ CSS สองตัวที่ฉันเพิ่ม แต่ดูเหมือนว่าจะไม่ทำงาน อะไรบ้าง


1
นอกจากนี้โปรดลองใช้ Google ก่อนโพสต์ที่นี่ ฉันไม่สงสัยเลยว่าผลลัพธ์แรกสำหรับชื่อที่คุณโพสต์ไว้ที่นี่จะให้ผลลัพธ์ที่ยอมรับได้ ฉันไม่รู้ว่าคุณมา.removeProperty()จากไหน
คริสเตียน

1
@Christian Varga อะไรตลก ๆ ตอนนี้ที่เขาได้โพสต์คำถามนี้มันเป็นผล google ครั้งแรก ผลลัพธ์ที่สองคือคำตอบสแต็คโอเวอร์โฟลว์ที่ถูกต้องอีกข้อหนึ่ง ข้อที่สามคือ "removeProp ()" และตัวที่สี่คือ "removeAttr ()" ซึ่งทั้งคู่นั้นผิด
rocketsarefast

คำตอบ:


369

คุณสามารถลบได้โดย:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });

26
มันสายเกินไปที่จะตอบ แต่ฉันคิดว่ามันสำคัญ คุณต้องจำไว้ว่าสิ่งนี้จะลบคุณลักษณะขององค์ประกอบที่กำหนดไว้ในแอตทริบิวต์ "style" เท่านั้น สิ่งนี้จะไม่ส่งผลใด ๆ หากได้รับมอบหมายให้เข้าเรียนหรือคล้ายกัน
โฮเซ่คาร์ลอส

15
หากคุณต้องการลบชุดคุณสมบัติผ่านคลาสคุณสามารถตั้งค่าเป็น 'inital' แทน ''
James Brierley

82

คุณสามารถใช้.css()เพื่อลบคุณสมบัติ css ได้เช่นนี้

$(".icha0").css("background-color","");
$(".icha0").css("opacity","");

ดังที่กล่าวไว้ในเอกสาร jquery:

การตั้งค่าของคุณสมบัติสไตล์เป็นสตริงว่าง - เช่น $ ('# mydiv'). css ('color', '') - ลบคุณสมบัตินั้นออกจากองค์ประกอบถ้ามันถูกนำไปใช้โดยตรง


16
จาก jqeury css: "อย่างไรก็ตามไม่ลบสไตล์ที่ใช้กับกฎ CSS ในสไตล์ชีทหรืออิลิเมนต์ <style>"
eggmatters

37

ในการลบคุณสมบัติ CSS ในบรรทัดให้ใช้:

$('.className').css({propertyName: ''});

ในการลบสไตล์ในบรรทัดทั้งหมดขององค์ประกอบให้ใช้:

$('.className').removeAttr('style');

ฉันได้พบคำแนะนำนี้เพื่อลบคุณสมบัติ CSS จากสไตล์ (ไฟล์แยก) ใช้:

$ ('. className'). style.propertyName = '';

แต่ฉันไม่สามารถทำให้มันใช้งานได้ดังนั้นฉันวางมันไว้ที่นี่แค่ FYI


4
$ ('. className'). style.propertyName = ''; ต้องเป็น $ ('. className') [0] .style.propertyName = ''; - แต่มันเป็นเรื่องไร้สาระ abolutly
ซูเปอร์โนวา

20

คุณสามารถตั้งค่าคุณสมบัติกลับเป็นค่าว่างได้:

$(".icha0").css("background-color","");

หรือคุณสามารถเปลี่ยนรหัสเพื่อใช้คลาสที่กำหนดไว้ในไฟล์ CSS:

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');

ช่วยลบขอบขรุขระเนื่องจากมุมมอง 3 มิติซ้อนกัน ฉันรู้สึกผิดหวังที่พยายามลบมุมมองหนึ่งเพื่อแก้ไขปัญหาการต่อต้านนามแฝงโพสต์นี้บันทึกวันของฉัน! ขอบคุณ!
Richard Yan

4

ฉันมีปัญหานี้ แต่ฉันไม่เห็นวิธีแก้ไขปัญหาใด ๆ โซลูชันส่วนใหญ่แนะนำให้กำจัดแอตทริบิวต์ทั้งหมดซึ่งไม่คุ้มค่า

ฉันใช้วิธีpropของ jQuery

var styleObject = $('my-selector').prop('style'); 

styleObject.removeProperty('background-color');

3

เรามีสองวิธีคุณสามารถลบ CSS สไตล์คลาสที่นำไปใช้โดยตรงซึ่งใช้กับองค์ประกอบ DOM หรือลบสไตล์ CSS ที่ใช้จากองค์ประกอบ

//Remove the class associated with element

$('#ID').removeClass("cssClass");

//Remove the CSS style from DOM element

$('p').css({"color":""});

3
ไม่มีอะไรใหม่ในคำตอบนี้ไม่มีประโยชน์ที่จะทำซ้ำคำตอบอื่น ๆ
Shadow Wizard คือหูสำหรับคุณ

2

สลับน้อยกว่าตัวเลือกในอุดมคติ แต่อาจแก้ไขปัญหาต่าง ๆ ได้ เพิ่มคลาสใหม่ให้กับองค์ประกอบที่มีค่าสืบทอด :

CSS

.clearCSS {
    background-color: inherit !important;
}

jQuery

$(".icha0").addClass('clearCSS'); 

2

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

ในการลบคุณสมบัติ CSS ในบรรทัดให้ใช้:

$('.className').css({propertyName: ''});   

ในการลบสไตล์ในบรรทัดทั้งหมดขององค์ประกอบให้ใช้:

$('.className').removeAttr('style');

หรือตาม ID:

$('#idName').removeAttr('style');

1

ในการลบคุณสมบัติ CSS ทั้งหมดใน JQuery สามารถใช้รหัสต่อไปนี้:

    $(".selector").removeClass().removeAttr('style');

ขอบคุณ


1

ถ้าคุณต้องการที่จะลบและไม่ได้ปรับปรุงสถานที่ให้บริการที่เฉพาะเจาะจงคุณสามารถใช้ RemovePropและไม่removeProperty :

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