Как удалить 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
@ Кристиан Варга, что смешно, теперь, когда он опубликовал этот вопрос, это первый результат Google. Второй результат - еще один правильный ответ о переполнении стека. Третий - «removeProp ()», а четвертый - «removeAttr ()», оба они не правы.
Rocketsarefast

Ответы:

369

Вы можете удалить их:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });
Невин
источник
26
Уже слишком поздно, чтобы ответить, но я думаю, что это важно. Вы должны помнить, что при этом будут удалены только атрибуты элемента, определенные в атрибуте «style». Это НЕ будет иметь никакого эффекта, если они назначены классу или подобному.
Хосе Карлос
15
Если вам нужно удалить набор свойств с помощью класса, вы можете установить «inital» вместо «»
Джеймс Брирли
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 = '';

НО я не мог заставить это работать вообще, поэтому я помещаю это здесь только к вашему сведению.

3Gee
источник
4
$ ('. className'). style.propertyName = ''; должно быть $ ('. className') [0] .style.propertyName = ''; - но это абсолютная ерунда
SuperNova
21

Либо вы можете установить свойства обратно пустыми:

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

Или вы можете изменить код для использования классов, определенных в файле CSS:

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');
Jivings
источник
Помогло удалить зазубренные края из-за вложенных трехмерных перспектив. Я был разочарован, пытаясь удалить одну из перспектив, чтобы исправить проблему с псевдонимом, этот пост спас мой день! Спасибо!
Ричард Ян
4

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

Я использовал метод поддержки jQuery .

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

styleObject.removeProperty('background-color');
NaxBuda
источник
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');
Jortega
источник
1

Чтобы удалить все свойства CSS в JQuery, можно использовать следующий код:

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

Спасибо.

Каусик Рой
источник
1

если вам нужно удалить, а не обновить определенное свойство, вы можете просто использовать removeProp, а не removeProperty :

$(".icha0").removeProp("background-color");
$(".icha0").removeProp("opacity");
Аззаби Хайтем
источник