JavaScriptда элементларни олишда хатолик
Баъзан бошланғич дастурчилар DOM элементлар гуруҳини олиш учун
querySelectorAll усули ўрнига
querySelector усулидан фойдаланиб хатога йўл қўядилар.
Келинг, ушбу хатолинг характерли хусусиятларини кўриб чиқайлик. Бизда параграфлар бор деб фараз қилайлик:
<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 цикли орқали айлантириб бўладиган нарса эмаслигини англатади.