JavaScriptda elementni olish xatosi
Ba'zan yangi boshlanuvchi dasturchilar bitta DOM elementini olish uchun
querySelector usuli o'rniga
querySelectorAll usulidan foydalanish xatosini qilishadi.
Keling, ushbu xatoning xarakterli xususiyatlarini ko'rib chiqaylik. Faraz qilaylik, bizda shunday abzat mavjud:
<p>matn</p>
Bir dasturchi ushbu abzatning matnini o'zgartirishga qaror qildi. Buning uchun u elementga havolani o'zgaruvchiga saqladi, lekin noto'g'ri usuldan foydalandi:
let elem = document.querySelectorAll('p');
Keyin dasturchi abzat matnini o'zgartirishga urindi. Biroq, abzat matni o'zgarmadi:
elem.textContent = '!!!'; // ishlamadi
Bunda konsilda hech qanday xato paydo bo'lmadi. Gap shundaki, bitta element ustida emas, balki guruh ustida amal bajarilgan. Guruh elementlarining matnini shunchaki o'qish yoki o'zgartirib bo'lmaydi - faqat ularni tsikl bilan aylantirib va har bir elementga alohida murojaat qilish orqali.
Xatoni qanday aniqlash mumkin
Keling, dasturchi ushbu xatoni aniqlash uchun qanday harakat qilishi kerakligini ko'rib chiqaylik. Aslida, ma'lum tajribaga ega bo'lsa, uni xarakterli belgilar bo'yicha osongina aniqlash mumkin.
Faraz qilaylik, bu sodir bo'lmadi. Unda
dasturchining xatolarni qidirishdagi birinchi harakati
o'zgaruvchilarning qiymatlarini konsilda chiqarish bo'lishi kerak. Uning holatida faqat bitta
o'zgaruvchi mavjud - elem. Ushbu o'zgaruvchining qiymatini chiqarish va uning ichida nima
yotganini ko'rish kerak:
let elem = document.querySelectorAll('p');
console.log(elem); // bitta element emas, balki massivni chiqaradi
Konsilda darhol ko'rinib turibdiki, o'zgaruvchida bitta element emas, balki massiv mavjud. Bu darhol elementni olish usulida xato qilinganligi haqida aniq maslahat beradi.