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

147

    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. Ensitreffit Jenni laukoo viinilasin ääressä suorat sanat Jyrkin aikeista: "Mä sanoin, että älä"

      Voi ei… Mitä luulet: kestääkö Jennin ja Jyrkin avioliitto vai päättyykö eroon? Lue lisää: https://www.suomi24.fi/viihde
      Ensitreffit alttarilla
      19
      2460
    2. 148
      2214
    3. Ymmärrän paremmin kuin koskaan

      Roikut kädessäni ja vedät puoleesi. Näen kuitenkin tämän kaiken lävitse ja kaikkien takia minun on tehtävä tämä. Päästän
      Tunteet
      29
      2132
    4. Hullu liikenteessä?

      Mikä hullu pyörii kylillä jos jahti päällä? Näitä tosin kyllä riittää tällä kylällä.
      Kiuruvesi
      52
      2109
    5. Niina Lahtinen uudessa elämäntilanteessa - Kotiolot ovat muuttuneet merkittävästi: "Nyt on...!"

      Niina, tanssejasi on riemukasta seurata, iso kiitos! Lue Niinan haastattelu: https://www.suomi24.fi/viihde/niina-lahti
      Suomalaiset julkkikset
      20
      1674
    6. Kun Venäjä on tasannut tilit Ukrainan kanssa, onko Suomi seuraava?

      Mitä mieltä olette, onko Suomi seuraava, jonka kanssa Venäjä tasaa tilit? Ja voisiko sitä mitenkään estää? Esimerkiks
      NATO
      387
      1583
    7. Ano Turtiainen saa syytteet kansankiihoituksesta

      Syytteitä on kolme ja niissä on kyse kirjoituksista, jotka hän on kansanedustaja-aikanaan julkaissut Twitter-tilillään
      Maailman menoa
      96
      1506
    8. Pyhäinpäivän aamua

      Oikein hyvää huomenta ja rauhallista päivää. ❄️😊🥱☕❤️
      Ikävä
      277
      1388
    9. Varokaa! Lunta voi sataa kohta!

      Vakava säävaroitus Lumisadevaroitus Satakunta, Uusimaa, Etelä-Karjala, Keski-Suomi, Etelä-Savo, Etelä-Pohjanmaa, Pohjanm
      Maailman menoa
      13
      1369
    10. Kunta ostaa kivitipun

      Kunnanjohtajan tuleva uusi ostokohde
      Lappajärvi
      130
      1346
    Aihe