Jak napisać kod aby wyświetlało mi elementy tylko z "background color:red" ?
A może spróbuj zmienić nieco sposób myślenia o problemie... Potrzebujesz dostać się do elementów, posiadających jakiś tam właściwości CSS, nie ważne jakie - zapominamy o background-color. Elementy o jakiś tam właściwościach.
Co nam to zmienia? Otóż wiele, ponieważ teraz możemy sobie sprecyzować czym te elementy się wyróżniają ale nie wizualnie (ponownie - zapominamy o background-color) ale czym się wyróżniają funkcjonalnie. To znaczy, dla przykładu załóżmy, że ten swój czerwony kolor dajesz dla divów wyświetlających jakiś błąd, ostrzeżenie itp. I tutaj mamy wskazówkę - a może by dla tych elementów dać po prostu dodatkową klasę "warning"?
No dobra, i co nam to z kolei daje?
Otóż teraz mamy zupełnie inny problem. W JS potrzebujmy dostać się do elementów oznaczających jakiś "warning", czyli mogę je pobrać po prostu przez querySelectorAll(".warning") (plus ewentualnie przerobić sobie to na Array w razie potrzeby). Nie interesuje nas jakie to elementy, czy są to LI, czy DIV itp. Interesuje nas jedynie ich znaczenie, które określiliśmy sobie klasą (można też atrybutem data- itp. rozwiązań jest wiele).
A co teraz ze stylami CSS? Można je wrzucić w tę klasę "warning" co pozwoli Ci stworzyć rozwiązanie uniwersalne.
I teraz pomyślmy jakie mamy zalety takiego podejścia:
- całkowicie odseparowaliśmy rodzaj znaczników html od sposobu dobierania się do nich w JS. Bierzemy elementy po klasie, nie ważne czy są to li, div, p itp. itd. W razie potrzeby ich rozróżniania możemy potem dalej na tej pobranej liście analizować rodzaj elementu, ale wciąż pobieramy je tak samo.
- stylowanie mamy w jednym miejscu.
- i najważniejsze... nie łączymy stylowania z przeznaczeniem elementu! Nie interesuje nas element z tłem "red" co zakładamy, że jest czymś pokazującym błąd itp. ale interesuje nas element, który funkcjonalnie odpowiada za wyświetlanie warning itp. A to jak jest ostylowany to zupełnie osobna sprawa. Pozwala nam to np. łatwo zmienić rodzaj tła z czerwonego na bordowy i nadal nasz kod działa.
Warto czasem spojrzeć na problem z nieco innej strony :) Kolega raftom dał ciekawy przykład rozbudowanego selektora css ale przemyśl teraz jak takie twory mogą z czasem utrudnić rozwój i utrzymanie aplikacji.