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

JavaScript-ում տարր ստանալիս սխալ

Երբեմն սկսնակ ծրագրավորողները սխալվում են՝ մեկ DOM տարր ստանալու համար օգտագործելով querySelectorAll մեթոդը querySelector մեթոդի փոխարեն:

Եկեք նայենք այս սխալի բնորոշ առանձնահատկություններին: Ենթադրենք տրված է պարբերություն.

<p>text</p>

Ինչ-որ ծրագրավորող որոշել է ստանալ և փոխել այդ պարբերության տեքստը: Դրա համար նա տարրի հղումը ստացել է փոփոխականի մեջ՝ սխալմամբ օգտագործելով ոչ ճիշտ մեթոդ.

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

Այնուհետև ծրագրավորողը փորձել է փոխել պարբերության տեքստը: Սակայն պարբերության տեքստը չի փոխվել.

elem.textContent = '!!!'; // չգործեց

Այս դեպքում կոնսոլում ոչ մի սխալ չի հայտնվել: Բանն այն է, որ կատարվել է թույլատրելի գործողություն, բայց ոչ մեկ տարրի, այլ խմբի վրա: Իսկ խմբի տարրերի տեքստը կարդալ կամ փոխել հնարավոր չէ անմիջապես՝ միայն օղակով դրանք բազմապատկելով և յուրաքանչյուր տարրին առանձին դիմելով:

Ինչպես հայտնաբերել սխալը

Եկեք տեսնենք, թե ինչպես պետք է ծրագրավորողը գործի, որպեսզի հայտնաբերի այս սխալը: Իրականում, որոշակի փորձ ունենալով, այն հեշտությամբ կարելի է հայտնաբերել բնորոշ նշաններով:

Ենթադրենք, սակայն, դա տեղի չի ունեցել: Այդ դեպքում սխալներ փնտրելիս ծրագրավորողի առաջին գործողությունը պետք է լինի փոփոխականների արժեքների արտածումը կոնսոլում: Նրա դեպքում կա միայն մեկ փոփոխական՝ elem: Պետք է արտածել այդ փոփոխականի արժեքը և նայել, թե ինչ է պարունակվում դրանում.

let elem = document.querySelectorAll('p'); console.log(elem); // կարտածի զանգված, և ոչ թե մեկ տարր

Կոնսոլում անմիջապես երևում է, որ փոփոխականում ոչ թե մեկ տարր է, այլ զանգված: Սա անմիջապես տալիս է ակնհայտ հուշում, որ տարր ստանալու մեթոդում սխալ է թույլ տրվել:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել