Przeciwna wartość

NW
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć,

napisałem sobie banalny kod w js:
document.getElementById( "dark" ).style.visibility = 'visible';

i to działa, jednak gdy napiszę:
document.getElementById( "dark" ).style.visibility = !document.getElementById( "dark" ).style.visibility;

to nie działa, dlaczego?

i tak przy okazji dlaczego gdy zrobię:
alert( document.getElementById( "dark" ).style.visibility )

to mam puste okienko zamiast wartości true/false? (próbowałem też document.getElementById( "dark" ).style.visibility.value, ale wtedy mam "undefined")

Pozdrawiam i dzięki za pomoc.

unikalna_nazwa
  • Rejestracja: dni
  • Ostatnio: dni
0

bo ten atrybut nie ma wartości "true" / "false" tylko "visible" / "hidden" (może być jeszcze "collapse" / "inherit" lub pusta - przy czym pusta wartość znaczy tyle co domyślne "visible")
alert jest pusty bo domyślnie właśnie ten atrybut nic nie zawiera

żeby go przełączyć możesz zrobić coś w tym stylu:

Kopiuj
var dark = document.getElementById( "dark" );
dark.style.visibility = dark.style.visibility === 'hidden' ? 'visible' : 'hidden';

ale to co powinieneś zrobić to zdefiniować dwie klasy w css i tylko je przełączać przez javascript nie odwołując się do "element.style"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.