სხვაობა JavaScript-ში პსევდომასივების ტიპებს შორის

სხვაობა პსევდომასივების ორ ტიპს შორის განხორციელდება DOM ელემენტების ცვლილებისას. მაგალითად, დავუშვათ, ჩვენ მივიღეთ აბზაცების კოლექცია როგორც HTMLCollection და როგორც NodeList. შემდეგ ჩვენ შევქმნით და დავამატებთ კიდევ ერთ აბზაცს ჩვენს DOM-ში. ამ შემთხვევაში ის ავტომატურად გამოჩნდება HTMLCollection-ში, მაგრამ კოლექცია NodeList უცვლელი დარჩება.

მოდით შევხედოთ მაგალითს. დავუშვათ, ჩვენ გვაქვს div, და მასში აბზაცები. მივიღოთ ჩვენი div და იგივე აბზაცები სხვადასხვა ტიპის კოლექციების სახით:

javascriptlet parent = document.querySelector('div');
let elems1 = document.getElementsByTagName('p'); // HTMLCollection
let elems2 = document.querySelectorAll('p');     // NodeList

დავამატოთ კიდევ ერთი აბზაცი ჩვენს div-ში:

javascriptlet p = document.createElement('p');
parent.append(p);

შედეგად ერთ-ერთი კოლექცია შეიცვლება, მეორე კი - არა:

javascriptconsole.log(elems1); // 4 აბზაცი - ახალი ჩათვლით
console.log(elems2); // 3 საწყისი აბზაცი
Задание 1

შეამოწმეთ, როგორ იქნება ქცევა children თვისების ახალი ელემენტის დამატებისას.

Задание 2

შეამოწმეთ, როგორ იქნება ქცევა childNodes თვისების ახალი ელემენტის დამატებისას.