JavaScript if() {} else {}

Anonyymi

Tämä toimii vain osittain:

if (document.getElementsByClassName('header-text')[0].style.display = 'block'){
document.getElementsByClassName('header-text')[0].style.display = 'none'}
else {
document.getElementsByClassName('header-text')[0].style.display = 'block'
}

Eli, yritän testata onko elementti olemassa, ja jos on onko elementin tila (style.display = 'block') jos on asetetaan (style.display = 'none') ja jos elementti on olemassa ja sen tila on (style.display = 'none') asetetaan se tilaan (style.display = 'block')

Tuo kyllä asettaa tilan (style.display = 'none') mutta ei palauta, enkä ole varma testaako se elementin olemassa oloa ollenkaan. Miten se tehdään oikein?

6

305

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi
    • Anonyymi

      Muista vertailussa kaksi (tai JS:ssä jopa kolme kannattaa laittaa :D) =-merkkiä!

      • Anonyymi

        Niin, tarkoitat että vertailussa (==) ja arvon asetuksessa (=), mutta ei kai näin (===).


      • Anonyymi

        Ei kun:

        vertailussa näin:
        === sama arvo ja sama tyyppi
        == sama arvo

        arvon asetuksessa näin:
        =


    • Anonyymi

      Tämä antaa "Console" editorissa virheen, ellei elementtiä ole, tai elementillä ei ole tuota ominaisuutta.

      x = document.getElementsByClassName('header-text')[0].style.display

      Miten tuo ominaisuus tulisi selvittää ilman virheitä?
      Tämä on sama kysymys kuin avauskin mutta nyt selkeämmin esitettynä.

      • Anonyymi

        Niin, jos elementtiä ei ole, niin sitä on paha mennä muokkaamaan. Style-ominaisuus DOM-elementillä pitäisi aina olla, eli jos elementti vaan löytyy, niin sitten ei pitäisi ongelmia olla. Voit testata löytyikö elementtiä:

        let el = document.getElementsByClassName('header-text')[0];
        if (el) {
        el.style.display = "" //...
        }


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kuka oli töllöntyön tekijä?

      Ketä on nyt pidätetty? Oliko syy mustasukkaisuus tyttöystävästä tai oliko muita lieventäviä seikkoja? Katuuko tekijä nyt
      Pieksämäki
      34
      4281
    2. Kotikasvatus siitä se lähtee eli missä meni vikaan että lapsesta tuli puukottaja

      Ottakaa muut oppia, normaali kotielämä. Ei liikaa edes hengellisyyttä.
      Pieksämäki
      49
      2263
    3. Kun kohtaat jotain ainutlaatuista

      ja upeaa, johon rakastut ehkä ensimmäistä kertaa ihan tosissaan. Sitten sähläät kaiken omien epävarmuuksien vuoksi. Eikö
      Ikävä
      47
      1395
    4. Minkälaisessa asunnossa

      haluaisit kaivattusi kanssa asua?
      Ikävä
      85
      1220
    5. Mua ahdistaa

      Tämä juttu. Miksi nainen torjuit minut vaikka kiinnostuksen merkkejä oli? Eihän tämän jutun olisi tarvinut johtaa sen pi
      Ikävä
      38
      1168
    6. Ei tämä enää tervettä oo

      Sydän pamppaillen oon jo tunnin meinannu laittaa sulle viestiä... Sormi tärisee lähetä kuvakkeen kohdalla.
      Ikävä
      25
      1136
    7. Perämoottoreiden huolto melkoisen kallista

      Minulla on tuollainen keskikokoinen perämoottori ja yleistä merkkiä. Kyselin sille keväthuoltoa paikallisista liikkeistä
      Savonlinna
      50
      1081
    8. Pasi Turunen: Ensimmäisenä Helluntaina ei kastettu sylivauvoja!

      Tänään 31.5.2026 Pasi Turunen noin vastasi soittajan kysymykseen! Raamattu EI KERRO ketä kastettiin
      Kaste
      161
      955
    9. Tanskademarit: ilman risusavottaa ei rahaa!

      Näin persuna on pakko ihailla noita Tanskan demareita. Tanskalaisessa sosiaalidemokratiassa ei työtön saa rahaa ellei os
      Maailman menoa
      175
      889
    10. Mikä siinä on että sinkku yrittää varattua?

      Siis ihan aina yrittävät muiden puolisoita.
      Sinkut
      58
      879
    Aihe