Как мне сбросить атрибут CSS элемента, используя jQuery? - PullRequest
80 голосов
/ 29 января 2009

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

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

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

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

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

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

Ответы [ 5 ]

117 голосов
/ 24 февраля 2011

Из документов jQuery :

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

14 голосов
/ 29 января 2009

Я думаю, что вы также можете сделать:

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

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

4 голосов
/ 29 января 2009

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

3 голосов
/ 29 января 2009

Попробуйте это:

$('#element').css('background-color', 'inherit');
0 голосов
/ 05 ноября 2013

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...