Як видалити властивість 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 ()", обидва з них помиляються.
— racketsarefast

Відповіді:


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
З cq jqeury: "Однак це не видаляє стиль, застосований із правилом CSS у таблиці стилів або <style>"
— eggmatters

37

Щоб видалити вбудовану властивість CSS, використовуйте:

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

Щоб видалити весь стиль рядка елемента, використовуйте:

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

Я також знайшов цю пропозицію видалити властивість CSS зі стилів (окремий файл):

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

Але я взагалі не міг змусити його працювати, тому я ставлю його просто FYI.


4
$ ('. className'). style.propertyName = ''; має бути $ ('. className') [0] .style.propertyName = ''; - але це абсолютно нісенітниця
— SuperNova

20

Ви можете повернути властивості до порожнього:

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

Або ви можете змінити код, щоб використовувати класи, визначені у файлі CSS:

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

Допомогли видалити зубчасті краї завдяки вкладеній 3d перспективі. Я розчарувався, намагаючись усунути одну з перспектив, щоб виправити проблему з псевдонімом, ця публікація врятувала мені день! Дякую!
— Річард Ян

4

У мене була ця проблема, але я не бачив тут жодного рішення, яке б задовольняло ОП. Більшість рішень пропонують позбутися всього атрибуту стилю, який не варто.

Я використовував метод опори 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');

АБО за ідентифікатором:

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

1

Для видалення всіх властивостей CSS у JQuery можна використовувати наступний код:

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

Дякую.


1

якщо вам потрібно видалити, а не оновити певну властивість, ви можете просто використовувати removeProp, а не видаляти властивість :

$(".icha0").removeProp("background-color");
$(".icha0").removeProp("opacity");
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.