Як видалити властивість 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.