Хатои гирифтани элементҳо дар JavaScript
Гаҳе-гоҳ барномасозони оғозкор хато мекунанд,
барои гирифтани як гурӯҳи элементҳои DOM
усули querySelector ба ҷои усули
querySelectorAll истифода мебаранд.
Биёед ба хусусиятҳои хоси ин хато нигарем. Фарз кунем, ки абзасҳо дода шудаанд:
<p>1</p>
<p>2</p>
<p>3</p>
Як барномасоз қарор кард, ки матнҳои ин абзасҳоро гирад ва ба консоли чоп кунад. Барои ин, ӯ истинодҳо ба ин элементҳоро дар тағирёбанда гирифт, бо истифодаи усули нодуруст хато кард:
let elems = document.querySelector('p');
Сипас ӯ қарор кард, ки абзасҳоро бо сикл гузаронад ва матни ҳар як абзасро ба консоли чоп кунад:
for (let elem of elems) {
console.log(elem.textContent);
}
Дар натиҷа, дар консоли хатои хоси
elems is not iterable пайдо мешавад. Он мегӯяд,
ки тағирёбандаи elems итератшаванда нест,
яъне массив ё чизе нест,
ки тавассути сикли for-of гузаронидан мумкин аст.