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

280

    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. Suomessa on meneillään boomereiden kosto

      1990-luvun lamassa osumaa saaneet sukupolvet toivovat sen jälkeen syntyneille sukupolville kärsimystä porvareita äänestä
      Maailman menoa
      142
      3514
    2. Petteri Orpon kommentti persujen väkivaltaan?

      Hiirenhiljaa taas on, kun Tampereella persulahkon ääriosasto pahoinpiteli kantasuomalaisen tytön. Missä on pääministeri
      Maailman menoa
      216
      2423
    3. IPCC romahtaa

      Mitenkäs tässä nyt näin kävi? Ilmastohourimoinnin tukijalka myöntää, ettei mitään ilmastokatastrofia olekaan. Eikös tääl
      Ilmastonmuutos
      68
      2408
    4. Toiko Helen laivalastillisen vieraslajeja Suomeen?

      Loviisan satamaan tuotiin laiva­lastillinen pähkinän­kuoria Norsun­luu­rannikolta Loviisan satamaan kiinnittyi vapun al
      Maailman menoa
      91
      2246
    5. Elikkä Riikka Purra ei kannusta Suomea edes euroviisuissa

      Sellaista on persujen "isänmaallisuus", oma kansa viimeiseksi ja ulkomaalaiset ensimmäisiksi. https://www.iltalehti.fi/
      Maailman menoa
      1
      1720
    6. Miten voit vain

      Olla kuin mitään ei olisi?
      Ikävä
      160
      1694
    7. Koulujen kesälomien siirto

      Koulujen kesälomaa voitaisiin siirtää viikon verran. Se voisi olla hyvä kompromissi. Pääsiäsiseen voitaisiin lisätä muut
      Maailman menoa
      121
      1504
    8. Perussuomalaisten onnistunut vappumarssi nostaa kannatusta

      Rauhanmarssilla olleiden kimppuun hyökänneiden vassareiden kannatus sen sijaan romahtaa. Kaikki näyttää hyvältä vuoden
      Maailman menoa
      16
      1250
    9. Inhottava stalkkeri

      Mikä ajaa ihmisen moiseen toimintaan ?
      Ikävä
      120
      1080
    10. Pelolla pakottaminen

      Kristinusko on tuovinaan valoa ja toivoa, mutta ensin pitää olla pimeyttä ja toivottomutta jotta joku valoa ja toivoa ha
      Kaste
      624
      1076
    Aihe