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?
JavaScript if() {} else {}
6
244
Vastaukset
- Anonyymi
Tämä www.w3schools.com sivun esimerkkit ei myöskään toimi tässä https://www.w3schools.com/jsref/jsref_if.asp
- 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
Kuka tekee näitä aloituksia
jotka aina ovat tällaisia.... Nämä on jonkun saman ihmisen käsialaa, joka paukuttaa tänne loputtomasti ketjuja, joissa595322Persujen kannatusromahduksen syynä bensan ja kaljan hinnan nostot
Marinin aikaan bensalitra 1,3e ja laatikon Sandelsia sai Lidlistaä 22 eurolla. Nyt hinnat ovat nousseet noin 50 prosent2573594Juhana Vartiainen(ex-sd): Köyhien pitää tehdä jotain elämälleen säilyttääkseen tukensa
Juhana Vartiainen ehdottaa Suomeen ”Tanskan mallia”, jossa sosiaaliturvaa saadakseen pitäisi hakea ensisijaisesti etuuks2873486Oot mahtava tyyppi
En tiedä luetko palstaa. Koitan siitä huolimatta. Oot mun mielestä tosi erityinen tyyppi. Nopeesti taisin ihastua. Jot403263Miksi tunnustukselliset muslimit saapuvat länteen?
Onko koskaan kysytty, että miksi islamilaisesta maailmasta tuleva tunnustuksellinen muslimi tarvitsisi turvapaikkaa väär3012708Rydmanin nousu sote-ministeriksi on kauttaaltaan irvokas
Mutta samalla se oli ainut todennäköinen lopputulema. Se myös alleviivaa sitä, mistä tällä hallituksella ja aivan erityi3191991Miksi vihereät ja vasemmisto haluavat tuhota tämän maan?
He halusivat, että kannabis tulisi lailliseksi? - eikö kylliksi nuoria tuhota jo nyt huumeilla? - kannabis tuhosi minun691983En ymmärrä näitä SDP:n ja muun vasemmiston kannattajia
Eivätkö ihmiset tiedä, että Suomen ongelmat johtuvat vasemmistolaisesta yhteiskuntamallista? Suomessa on ollut vasemmis1431839Sofia servasi Pikku-Villen suvereenisti
– Ihanko tosissaan tuleva sosiaali- ja terveysministeri hyökkää oppositiopuolueen puheenjohtajaa vastaan siksi, että täm371465- 1201205