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
326
Vastaukset 6
- 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
Poliisin potkija
Kukahan oman elämänsä sankari oli potkaissut poliisia? Iltalehdessä oli juttua.331451- 75956
Miten yksi ihminen
Voi kolahtaa näin kovaa? Saada ajatukset vallattua näin totaalisesti? Taidan oikeasti tarvita ammattiapua tämän kanssa,42883P*skimmat palstalaiset kautta aikojen äänestys
Nyt kaikki peliin, ilman parasta, ei ole p*skinta! Muistetaan mainita myös ne piileskelevät pirulaiset! 🤓200823Työttömiä suomalaisia ei saa töihin
Ei hakemuksen hakemusta suomalaisilta ammattilaisilta, Piti sitten filippiiniläisiä palkata. https://www.is.fi/talouss313771- 53767
Olet lihonut kuin pullataikina
Olet lihonut kuin pullataikina. Et ole yhtä kaunis kuin aikaisemmin. Oletko ryyppäämässä käynnyt joka ilta?40688- 94662
Kyllä on ihmisillä paha olla
Harmi, kun se pitää kipata toisten niskaan. Noh, huhuhan kertoo, että koko palsta on menossa kiinni. Pitäneekö paikkan119573- 52556