Kosa la Kupata Kipengele katika JavaScript
Wakati mwingine waandaaji wa programu wanaoanza kufanya kazi hufanya kosa,
wakitumia kupata kipengele kimoja cha DOM
mbinu querySelectorAll badala ya mbinu
querySelector.
Wacha tuangalie sifa za kipekee za kosa hili. Acha kipande kimetolewa:
<p>maandishi</p>
Mtaalamu fulani wa programu aliaamua kupata na kubadilisha maandishi ya kipande hiki. Ili kufanya hivyo, alipata kiungo kwa hiki kipengele kwenye kutofautisha, akitumia kwa makosa mbinu isiyofaa:
let elem = document.querySelectorAll('p');
Kisha mtaalamu wa programu alijaribu kubadilisha maandishi ya kipande. Hata hivyo, maandishi ya kipande hayakubadilika:
elem.textContent = '!!!'; // haikufanya kazi
Wakati huo hakuna kosa lolote katika konsoli lilionekana. Jambo ni kwamba operesheni inayokubalika ilitekelezwa, lakini sio kwa kipengele kimoja, lakini kwa kikundi. Na kusoma au kubadilisha maandishi ya kikundi cha vipengele hawawezi kufanywa kwa urahisi - ni muhimu tu kuvipitia kwa kutumia kitanzi na kukaribia kila kipengele tofauti.
Jinsi ya Gundua Kosa
Wacha tuone jinsi mtaalamu wa programu anapaswa kutenda ili kugundua kosa hili. Kwa kweli, ikiwa una uzoefu fulani, ni rahisi kuigundua kwa kutumia dalili za kipekee.
Lakini hii haikufanyika. Basi
hatua ya kwanza ya mtaalamu wa programu wakati wa kutafuta makosa
inapaswa kuwa ni kuonyesha thamani za anuwai
katika konsoli. Katika kesi yake, kuna tu
kutofautisha kimoja - elem. Ni muhimu kuonyesha thamani
ya kutofautisha hii na kuona
kile kilichomo ndani:
let elem = document.querySelectorAll('p');
console.log(elem); // itaonyesha safu, na sio kipengele kimoja
Katika konsoli inaonekana mara moja kwamba katika kutofautisha hakuna kipengele kimoja, lakini safu. Hii inatoa mara moja kidokezo dhahiri kwamba kosa limefanywa katika mbinu ya kupata kipengele.