Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
2 of 17 menu

Virhe elementin hakemisessa JavaScriptissä

Joskus aloittelevat ohjelmoijat tekevät virheen käyttämällä yhden DOM-elementin hakemiseen menetelmää querySelectorAll menetelmän querySelector sijasta.

Katsotaanpa tämän virheen tunnusomaisia piirteitä. Olkoon annettu kappale:

<p>teksti</p>

Eräs ohjelmoija päätti hakea ja muuttaa tämän kappaleen tekstin. Hän tallensi viittauksen tähän elementtiin muuttujaan käyttämällä virheellisesti väärää menetelmää:

let elem = document.querySelectorAll('p');

Sitten ohjelmoija yritti muuttaa kappaleen tekstin. Kappaleen teksti ei kuitenkaan muuttunut:

elem.textContent = '!!!'; // ei toiminut

Samalla konsoliin ei ilmestynyt mitään virhettä. Asia on siinä, että suoritettiin sallittu operaatio, mutta ei yhden elementin, vaan ryhmän yli. Ryhmän elementtien tekstin lukeminen tai muuttaminen ei yksinkertaisesti onnistu - vain käymällä ne läpi silmukalla ja kääntymällä jokaiseen elementtiin erikseen.

Kuinka virhe löydetään

Katsotaan, kuinka ohjelmoijan tulisi toimia löytääkseen tämän virheen. Itse asiassa, joillakin kokemuksella, sen on helppo löytää tunnusomaisten merkkien perusteella.

Mutta olkoon niin, että näin ei tapahdu. Silloin ohjelmoijan ensimmäinen toimenpide virheiden etsinnässä tulisi olla muuttujien arvojen tulostaminen konsoliin. Hänen tapauksessaan on vain yksi muuttuja - elem. Tämän muuttujan arvo tulisi tulostaa ja katsoa, mitä siinä on:

let elem = document.querySelectorAll('p'); console.log(elem); // tulostaa taulukon, ei yhden elementin

Konsolissa näkee heti, että muuttujassa ei ole yksi elementti, vaan taulukko. Tämä antaa heti ilmeisen vihjeen siitä, että elementin hakumenetelmässä on tehty virhe.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää