Zmieniam CSS za pomocą jQuery i chcę usunąć styl dodawany na podstawie wartości wejściowej:
if(color != '000000') $("body").css("background-color", color); else // remove style ?
W jaki sposób mogę to zrobić?
Zauważ, że powyższa linia biegnie za każdym razem, gdy kolor jest wybierany za pomocą próbnika kolorów (tj. Gdy mysz przesuwa się po kole kolorów).
Druga uwaga: nie mogę tego zrobić, css("background-color", "none")
ponieważ spowoduje to usunięcie domyślnego stylu z plików CSS .
Chcę tylko usunąć background-color
styl wbudowany dodany przez jQuery .
javascript
jquery
css
background
Alex
źródło
źródło
Odpowiedzi:
Zmiana właściwości na pusty ciąg znaków wydaje się wykonywać zadanie:
źródło
Przyjęta odpowiedź działa, ale pozostawia pusty
style
atrybut w DOM w moich testach. Nic wielkiego, ale to wszystko usuwa:Zakłada się, że chcesz usunąć wszystkie dynamiczne style i wrócić do stylizacji arkusza stylów.
źródło
Istnieje kilka sposobów usunięcia właściwości CSS za pomocą jQuery:
1. Ustawienie właściwości CSS na wartość domyślną (początkową)
Zobacz wartość początkową właściwości CSS w MDN . Tutaj wartością domyślną jest
transparent
. Możesz także użyćinherit
dla kilku właściwości CSS, aby odziedziczyć atrybut od jego rodzica. W CSS3 / CSS4, można również użyćinitial
,revert
albounset
, ale te słowa mogą mieć ograniczoną obsługę przeglądarki.2. Usuwanie właściwości CSS
Pusty ciąg usuwa właściwość CSS, tj
Ale uwaga, jak określono w dokumentacji jQuery .css () , usuwa to właściwość, ale ma problemy z kompatybilnością z IE8 dla niektórych właściwości skróconych CSS, w tym tła .
3. Usunięcie całego stylu elementu
źródło
Udało mi się usunąć atrybut stylu za pomocą czystego JavaScript, aby poinformować Cię o sposobie czystego JavaScript
źródło
Spowoduje to usunięcie pełnego tagu:
źródło
jedna z tych funkcji jQuery powinna działać:
źródło
var cssObject = $('selector').prop('style'); cssObject.removeProperty('background-color');
Po prostu używając:
lub
źródło
Co powiesz na coś takiego:
źródło
Użyj mojej wtyczki:
W twoim przypadku użyj go w następujący sposób:
lub
jeśli chcesz usunąć również CSS zdefiniowany w jego klasach:
źródło
$(this).removeAttr
jest zbędny ithis.removeAttr
powinien wystarczyć.removeAttr
usunie równieżclass
attr? nie sądzęremoveAttr
wnętrzu twojej wtyczki, w którejthis
jest już element jQuery.$(this)
jest zbędny.this
jakoHTMLElement
instancję odwzorowaną na element jQuery ... Jak widzisz, moja odpowiedź jest stara ... dlatego ... w każdym razie, mogę ci powiedzieć, dlaczego to zmieniają, robią to z powodu funkcji strzałki, która jest nowa w ES6. .. ithis
staje się bezużyteczny i został zastąpiony przezevent.currentTarget
Spróbuj tego:
Dzięki
źródło
Jeśli używasz stylu CSS, możesz użyć:
a następnie zamień na:
Jeśli nie używasz stylu CSS i masz atrybut w elemencie HTML, możesz użyć:
źródło
2018 r
jest do tego natywny API
źródło
Ten też działa !!
źródło
Dlaczego nie stworzyć stylu, w którym chcesz usunąć klasę CSS? Teraz można użyć:
.removeClass()
. Otwiera to również możliwość korzystania z:.toggleClass()
(usuń klasę, jeśli jest obecna i dodaj ją, jeśli nie jest).
Dodawanie / usuwanie klasy jest mniej mylące przy zmianie / rozwiązywaniu problemów podczas rozwiązywania problemów związanych z układem (w przeciwieństwie do prób ustalenia, dlaczego dany styl zniknął).
źródło
źródło
Jest to bardziej złożone niż niektóre inne rozwiązania, ale może oferować większą elastyczność w scenariuszach:
1) Utwórz definicję klasy, aby wyizolować (obudować) styl, który chcesz zastosować / usunąć selektywnie. Może być pusty (i w tym przypadku prawdopodobnie powinien być):
2) użyć tego kodu, w oparciu o http://jsfiddle.net/kdp5V/167/ z tej odpowiedzi przez gilly3 :
Przykład użycia: http://jsfiddle.net/qvkwhtow/
Ostrzeżenia:
Izolowanie stylów w ten sposób jest tym, o co chodzi w CSS, nawet jeśli nie jest nim manipulowanie. Manipulowanie regułami CSS NIE jest tym, o co chodzi w jQuery, jQuery manipuluje elementami DOM i używa do tego selektorów CSS.
źródło
Proste jest tanie w tworzeniu stron internetowych. Zalecam używanie pustego łańcucha podczas usuwania określonego stylu
źródło
Spróbuj tego
źródło