Wpis z mikrobloga

Mirki jak to zapisać by zadziałało? (z liczbą działa ale ze zmienną pod którą jest liczba już nie)

var numberDay = 1;
var today = document.querySelector("#main div:nth-child(numberDay)");

today.style.backgroundColor = "blue";

  • 12
@lapovsky: nie usuwasz klasy w momencie przejścia do kolejnego elementu, więc zaznaczenie nie zostaje czasami, a zawsze, do momentu kolejnego wywołania toggle.

Wyjątkiem jest dzień 18, bo kontener z tym numerem w rzeczywistości jest dziewiętnastym elementem znajdowanym przez selektor #main div (ze względu na jeden pusty kontener na początku).
Więc Twoje #main div:nth-child(18) w rzeczywistości znajduje kontener z numerem 17 - stąd kliknięcie w poprzedni dzień przeskakuje na 16., a kliknięcie
@lapovsky: j/w

#main div:nth-child - tu jest problem, bo wyszukujesz WSZYSTKIE divy w #main zaczynając od określonej pozycji ale zauważ, że poza dniami danego miesiąca masz jeszcze 4 inne divy dla poprzedniego/następnego miesiąca. Rozwiązać to możesz nadając jakas klase np .active-day elementom od 1-31 i po prostu robić #main .active-day:nth-child(x)

// edit: wlasciwie to nie wiem jak to ma dzialac :D dlaczego wybrales :nth-child? klikajac następny dzien rozumiem, ze ma sie

Problemem jest to że chciałbym zrobić tak by po przejściu na dzień np 22 tylko on był podświetlony a wszystkie inne nie, tak by buttonami można było zaznaczać który dziś jest. Ogólnie mam wrażenie że można to rozwiązać bardzo prosto ale jestem w trakcie nauki i jakoś nie bardzo mi to wychodzi :c
@lapovsky: problem z zaznaczaniem wielu dni wynika z tego, że robisz toggleClass tylko na elemencie, który ma zostać zaznaczony, a nie odznaczasz już zaznaczonych dni, które dostały te klasę wcześniej
coś takiego

document.querySelector('.today').classList.remove('today');
var today = document.querySelector(
#main div:nth-child(${numberDay}))
today.classList.add('today');