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

Hiba egy elem lekérésekor JavaScriptben

Időnként a kezdő programozók hibát követnek el azzal, hogy egyetlen DOM elem lekéréséhez a querySelectorAll metódust használják a querySelector metódus helyett.

Nézzük meg ennek a hibának a jellemző jellegzetességeit. Tegyük fel, hogy adott egy bekezdés:

<p>szöveg</p>

Egy programozó úgy döntött, hogy megkapja és megváltoztatja ennek a bekezdésnek a szövegét. Ehhez hivatkozást kapott erre a elemre egy változóba, de tévesen a rossz metódust használta:

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

Majd a programozó megpróbálta megváltoztatni a bekezdés szövegét. Azonban a bekezdés szövege nem változott:

elem.textContent = '!!!'; // nem működött

Eközben semmilyen hiba nem jelent meg a konzolban. Az ok az, hogy egy megengedett műveletet hajtottak végre, de nem egy elemmel, hanem egy csoporttal. Viszont egy elemcsoport szövegét egyszerűen nem lehet olvasni vagy módosítani - csak egy ciklussal bejárva azokat, és minden egyes elemre külön-külön hivatkozva.

Hogyan fedezzük fel a hibát

Nézzük meg, hogy a programozónak hogyan kell eljárnia a hiba felderítéséhez. Valójában, némi tapasztalattal könnyű felismerni a jellemző jelei alapján.

Tegyük fel azonban, hogy ez nem történik meg. Akkor a programozó első lépése a hibakeresés során a változók értékeinek kiírása a konzolba kell, hogy legyen. Az ő esetében csak egy változó van - a elem. Ki kell írni ennek a változónak az értékét, és meg kell nézni, hogy az mi van benne:

let elem = document.querySelectorAll('p'); console.log(elem); // egy tömböt fog kiírni, nem egy elemet

A konzolon azonnal látható, hogy a változóban nem egy elem, hanem egy tömb található. Ez azonnal egy nyilvánvaló támpontot ad arról, hogy hiba történt az elem lekéréséhez használt metódusban.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás