• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

getElementById + css style.color; dlaczego wywala błąd?

Object Storage Arubacloud
0 głosów
194 wizyt
pytanie zadane 27 lipca 2017 w JavaScript przez Konfeusz Bywalec (2,810 p.)

Witam.

Znowu pewnie z pierdułką... a mianowicie. 

mam diva a w nim <div><p id="komunikat"></p></div> oraz script:

let komunikatBlad = document.getElementById("komunikat").innerHTML = "walka nie mogła się rozpocząć";
komunikatBlad.style.color = 'red';

 co prawda wyświetla komunikat, ale na czarno, a w konsoli to: 

Cannot set property 'color' of undefined

Czy może mi ktoś wytłumaczyć o co mu chodzi? Z góry dziękuje.

2 odpowiedzi

+1 głos
odpowiedź 27 lipca 2017 przez imklau Nałogowiec (42,090 p.)

daj to normalnie w osobnych linijkach

let komunikatBlad = document.getElementById("komunikat");
komunikatBlad.innerHTML = 'walka nie mogła się rozpocząć';
komunikatBlad.style.color = 'red';

 

komentarz 27 lipca 2017 przez Tomek Sochacki Ekspert (227,510 p.)
Nie wiem co to za element ten #komunikat ale skoro ustawiasz mu węzeł tekstowy to prawdopodobnie zamiast innerHTML mógłbyś użyć po prostu textContent (jest to szybsza metoda i lepiej wskazująca co chcesz ustawić).
komentarz 27 lipca 2017 przez Konfeusz Bywalec (2,810 p.)
Działa dzięki. W sumie na logikę należało to rozbić.

Abstrahując, jaka jest różnica między innerHTML a textContent? Tak po ludzku.
1
komentarz 27 lipca 2017 przez Tomek Sochacki Ekspert (227,510 p.)

Na przykład tym, że metoda innerHTML inaczej przetwarza DOM, gdy metoda textContent po prostu operuje wyłącznie na modyfikacji węzła tekstowego. Zobacz sobie np.:

https://codepen.io/anon/pen/xLGBqL?editors=1010#0

W obu przypadkach jako wartość węzła ustawiam tekst między znacznikami <b>, które teoretycznie powinny spowodować pogrubienie tekstu, ale tak się nie dzieje :)

(to tylko przykład, nie bijcie za <b> zamiast CSS :)

komentarz 27 lipca 2017 przez Konfeusz Bywalec (2,810 p.)
Czaje ;)... dzięki.
komentarz 27 lipca 2017 przez imklau Nałogowiec (42,090 p.)

jeszcze jest innerText, ale rozumiem, że tego już całkowicie się nie używa? ;)

1
komentarz 27 lipca 2017 przez Tomek Sochacki Ekspert (227,510 p.)
innerText nie jest standardem i jest to "stworek potworek" naszej ulubionej, ukochanej przeglądarki IE :)

Jeśli musisz wspierać stare IE to prawdopodobnie będzie trzeba zrobić alternatywę dla braku textContent ale ja np. odpuszczam sobie obecnie stare IE (z tego co pamiętam to chyba nawet jQuery nowe już nie wspierają starych IE ale tu nie dam sobie ręki uciąć, bo nie używam na co dzień jQuery).
komentarz 27 lipca 2017 przez imklau Nałogowiec (42,090 p.)
tak właśnie myślałam, dzięki ;)
+1 głos
odpowiedź 27 lipca 2017 przez ForeverFriendzone Dyskutant (7,520 p.)
edycja 27 lipca 2017 przez ForeverFriendzone
Popatrz tutaj jak to działa: https://fiddle.jshell.net/eo4rvpLr/1/

Pozdrawiam :D !
komentarz 27 lipca 2017 przez imklau Nałogowiec (42,090 p.)

pytanie całkowicie, jako offtop.... z jakigo języka wziąłeś słówko comunicat? laugh

komentarz 27 lipca 2017 przez ForeverFriendzone Dyskutant (7,520 p.)
Mój błąd- ale wstyd :D
komentarz 27 lipca 2017 przez imklau Nałogowiec (42,090 p.)

sama przez chwilę się zastanawiałam, czy nie użyć angielskich nazw w tym przykładzie, ale zrezygnowałam ;p a później patrzę, że Ty użyłeś i aż musiałam szukać czy takie słówko istnieje, bo nie wiedziałam :<

aale luuz cheeky

komentarz 27 lipca 2017 przez Konfeusz Bywalec (2,810 p.)
No działa ;) Również i Tobie dziękuje..

Podobne pytania

0 głosów
3 odpowiedzi 173 wizyt
pytanie zadane 5 marca 2016 w HTML i CSS przez LordMarchewa Nowicjusz (150 p.)
0 głosów
1 odpowiedź 86 wizyt
pytanie zadane 27 lipca 2018 w HTML i CSS przez _Pita_ Stary wyjadacz (11,410 p.)
0 głosów
3 odpowiedzi 581 wizyt
pytanie zadane 27 maja 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)

92,555 zapytań

141,403 odpowiedzi

319,556 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...