شئNodeList ليست يا مجموعه از نودهاي استخراج شده از يك سند است . اين شئ تقريبا مشابه با شئHTMLCollection است .
برخي از مرورگرهاي قديمي تر يك شئNodeList بجايHTMLCollection براي متدهائي مثل getElementById( )برگشت ميدهند .
همه مرورگرها يك شئNodeList را براي ويژگي childNodes برگشت ميدهند.
اكثر مرورگرها يك شئNodeList رابراي متد querySelectorALL( ) برميگردانند .
مثال ـ تمام عناصر<p> انتخاب ميشوند
const myNodeList = document.querySelectorAll("p");
عناصر درNodeList بوسيله شماره انديس قابل دسترسي هستند .براي دسترسي به دومين عنصر <p>مطابق كد زير ميباشد .
مثال ـ دسترسي بدومين عنصر
myNodeList[1]
توجه ـ انديس از صفر شروع ميگردد.
ويژگيlength تعداد گره هاي ليست نود را مشخص ميكند .
مثال ـ طول ليست نودها
myNodelist.length
ويژگيlength براي دور زدن روي ليست نودها مورد استفاده ميباشد :
مثال ـ تغيير رنگ همه عناصر<p> سند
const myNodelist = document.querySelectorAll("p"); for (let i = 0; i < myNodelist.length; i++) { myNodelist[i].style.color = "red"; }
يكNodeList و يكHTMLCollection تقريبا يكسان هستند .
هر دو شئي از يك سندHTML استخراج ميگردند، آنها هردو آرايه مانند بوده وانديس آنها از صفر شروع ميگردد .آنها داراي ويژگي مشابهlength ميباشند .اين ويژگي تعداد عناصر آن دو را نشان ميدهد.
HTMLCollectionيك مجموعه از عناصرHTML است .اماNodeList يك مجموعه اي از نودهاي سند شامل نودعنصر، نودويژگي ونود متن است .يعني آن اطلاعات جامعتري از سند نسبت بهHTMLCollection دارد.
به آيتم هايHTMLCollection ميتوان بوسيله name,id,index nmber دسترسي پيدا كرد اما آيتم هاي NodeListفقط با index number
يكHTMLCollection هميشه يك مجموعه زنده است .بعنوان مثال اگر عنصر <li> بهHTML DOM اضافه شود، ليست موجود درHTMLCollection هم تغيير ميكند . اماNodeList وضعيت استاتيك دارد و تغييرات رويHTML DOM به آن منتقل نمي شود .
متد هايgetElementByClass( ) و getElementByTagName( )يك مجموعه زنده را در HTMLCollection برگشت ميدهند.
متدquerySelectorALL( ) يك مجموع استاتيك را در NodeList برگشت ميدهد .همچنين ويژگيchildNodes مجموعه استاتيك را به nodeList برگشت ميدهد .
يكnodeList مشابه آرايه است ، اما آرايه نيست .ميتوان روي آن حلقه ايجاد كرد ودور زد .اما نميتوان متدهايpush() , pop( ),join( ) روي آن بكار گرفت .