Как отключить атрибут CSS элемента с помощью jQuery?

Если я устанавливаю значение CSS для определенного элемента, используя:

$('#element').css('background-color', '#ccc');

Я хочу, чтобы убрать это значение для элемента и использовать каскадное значение по строкам:

$('#element').css('background-color', null);

Но этот синтаксис не работает - возможно ли это с помощью другого синтаксиса?

Спасибо заранее!

Изменить: Значение не наследуется от родительского элемента - исходные значения поступают из селектора уровня элемента. Извините за любую путаницу!

Ответ 1

В jQuery docs:

Установка значения свойства style в пустую строку - например. $('#mydiv').css('color', '') - удаляет это свойство из элемента, если оно уже было применено непосредственно, как в атрибуте стиля HTML, через метод jQuery .css(), так и при непосредственном манипулировании DOM свойства style. Однако он не удаляет стиль, примененный с помощью правила CSS в элементе таблицы стилей или <style>.

Ответ 2

Думаю, вы также можете:

$('#element').css('background-color', '');

То, что я делал давно для свойства display в plain-old-javascript, чтобы показать/скрыть поле.

Ответ 3

На самом деле синтаксис, который я считал неправильным (с null), кажется, работает: мой селектор был просто неправильно сформирован и, таким образом, не дал никаких элементов. D'о!

Ответ 4

Попробуйте следующее:

$('#element').css('background-color', 'inherit');

Ответ 5

Для того, что стоит, похоже, не работает в IE 8 для "фильтра", мне пришлось использовать это (в обратном вызове fadeIn):

$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));

Очевидно, мне нужно было удалить пустое объявление встроенного фильтра, чтобы CSS мог вступить в силу; были другие встроенные правила, поэтому я не мог просто удалить атрибут стиля.