Jeśli ustawię wartość CSS na określonym elemencie za pomocą:
$('#element').css('background-color', '#ccc');
Chcę mieć możliwość anulowania tej wartości specyficznej dla elementu i użycia wartości kaskadowej, na wzór:
$('#element').css('background-color', null);
Ale ta składnia wydaje się nie działać - czy jest to możliwe przy użyciu innej składni?
Edycja: wartość nie jest dziedziczona z elementu nadrzędnego - oryginalne wartości pochodzą z selektora na poziomie elementu. Przepraszamy za zamieszanie!
style
atrybucie na tagu, więc ta metoda nie zadziałała. Zastosowanie stylu.css()
metodą zamiast w tagu pozwoliło mi go później usunąć.Myślę, że możesz też:
$('#element').css('background-color', '');
To właśnie robiłem dawno temu dla
display
właściwości w zwykłym starym javascript, aby pokazać / ukryć pole.źródło
Właściwie składnia, o której myślałem, że jest nieprawidłowa (z
null
), wydaje się działać - mój selektor został po prostu nieprawidłowo uformowany, a zatem nie zawierał żadnych elementów. D'oh!źródło
css(..., null)
nie działa icss(..., '')
powinno być używane zamiast tego - bugs.jquery.com/ticket/7233Spróbuj tego:
$('#element').css('background-color', 'inherit');
źródło
Bo to jest warte, wydaje się, że nie działa w IE 8 dla `` filtra '', musiałem użyć tego (w funkcji zwrotnej fadeIn):
$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));
Oczywiście musiałem usunąć pustą deklarację filtra wbudowanego, aby CSS mógł zacząć działać; istniały inne reguły wbudowane, więc nie mogłem po prostu usunąć atrybutu stylu.
źródło
Jeśli to może pomóc, dodaję problem z podwójnym cudzysłowem:
$('#element').css("border-color", "");
nie działa podczas
$('#element').css('border-color', '');
Pracuje
źródło