Если я устанавливаю значение CSS для определенного элемента, используя:
$('#element').css('background-color', '#ccc');
Я хочу иметь возможность отключить это значение для конкретного элемента и использовать каскадное значение в следующих строках:
$('#element').css('background-color', null);
Но этот синтаксис, похоже, не работает - возможно ли это с использованием другого синтаксиса?
Изменить: значение не наследуется от родительского элемента - исходные значения поступают из селектора на уровне элемента. Извините за путаницу!
style
атрибуте тега, поэтому этот метод не работал. Применение стиля с помощью.css()
метода вместо тега позволило мне удалить его позже.Думаю, вы также можете:
$('#element').css('background-color', '');
Это то, что я делал давным-давно для
display
свойства в plain-old-javascript, чтобы показать / скрыть поле.источник
На самом деле, синтаксис, который я считал неправильным (с
null
), похоже, работает - мой селектор был просто неправильно сформирован и, следовательно, не дал никаких элементов. Ооо!источник
css(..., null)
не работает иcss(..., '')
должен использоваться вместо этого - bugs.jquery.com/ticket/7233Попробуй это:
$('#element').css('background-color', 'inherit');
источник
Как бы то ни было, похоже, что это не работает в IE 8 для 'filter', мне пришлось использовать это (в обратном вызове fadeIn):
$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));
Очевидно, мне нужно было удалить пустое объявление встроенного фильтра, чтобы CSS мог вступить в силу; были и другие встроенные правила, поэтому я не мог просто удалить атрибут стиля.
источник
Если это может помочь, я добавляю проблему с двойными кавычками:
$('#element').css("border-color", "");
не работает пока
$('#element').css('border-color', '');
работает
источник