একজন node
করে DOM অনুক্রমের বস্তুর কোনো ধরনের জন্য জেনেরিক নাম। একজন node
এক হতে পারে বিল্ট-ইন যেমন DOM উপাদানে document
বা document.body
, এটা যেমন যেমন একটি HTML ট্যাগ HTML এ নিদিষ্ট হতে পারে <input>
বা <p>
বা এটি একটি টেক্সট নোড যে অন্য উপাদান ভিতরে লেখার একটা ব্লক রাখা সিস্টেম দ্বারা তৈরি করা হয় হতে পারে । সুতরাং, সংক্ষেপে, একটি node
হল কোনও ডিওএম অবজেক্ট।
এ element
হ'ল একটি নির্দিষ্ট প্রকারের node
নোডের অন্যান্য ধরণের (টেক্সট নোডস, কমেন্ট নোডস, ডকুমেন্ট নোডস ইত্যাদি) রয়েছে।
ডিওমে নোডের একটি শ্রেণিবিন্যাস থাকে যেখানে প্রতিটি নোডের পিতামাতারা থাকতে পারে, চাইল্ড নোডগুলির একটি তালিকা এবং একটি নেক্সটসিলিং এবং পূর্ববর্তী শিবলিং থাকতে পারে। সেই কাঠামোটি গাছের মতো শ্রেণিবিন্যাস গঠন করে। document
নোড শিশু নোড (তালিকায় থাকবে head
নোড এবং body
নোড)। body
নোড শিশু নোড (আপনার HTML পাতায় মধ্যে শীর্ষ স্তরের উপাদান) এবং তাই তালিকায় হবে।
সুতরাং, একটি nodeList
কেবল একটি অ্যারের মতো তালিকা nodes
।
একটি উপাদান হ'ল একটি নির্দিষ্ট ধরণের নোড, যা কোনও এইচটিএমএল ট্যাগের সাথে সরাসরি এইচটিএমএলে নির্দিষ্ট করা যায় এবং এতে একটি id
বা এ এর মতো বৈশিষ্ট্য থাকতে পারে class
। বাচ্চা ইত্যাদি থাকতে পারে ... অন্যান্য ধরণের নোড যেমন কমেন্ট নোড, পাঠ্য নোড ইত্যাদি রয়েছে ... বিভিন্ন বৈশিষ্ট্যযুক্ত। প্রতিটি নোডের একটি সম্পত্তি থাকে .nodeType
যা এটি কোন ধরণের নোডের প্রতিবেদন করে। আপনি এখানে বিভিন্ন ধরণের নোড দেখতে পাচ্ছেন ( এমডিএন থেকে চিত্র ):
আপনি দেখতে পাচ্ছেন যে ELEMENT_NODE
এটি একটি বিশেষ ধরণের নোড যেখানে nodeType
সম্পত্তিটির মান রয়েছে 1
।
সুতরাং document.getElementById("test")
কেবলমাত্র একটি নোড ফিরে আসতে পারে এবং এটি একটি উপাদান (একটি নির্দিষ্ট ধরণের নোড) হওয়ার গ্যারান্টিযুক্ত। যে কারণে এটি কেবল তালিকার চেয়ে উপাদানটি ফেরত দেয়।
যেহেতু document.getElementsByClassName("para")
একাধিক বস্তু ফেরত আসতে পারে, তাই ডিজাইনাররা একটি ফেরত দেওয়া বেছে নিল nodeList
কারণ এটি একাধিক নোডের তালিকার জন্য তৈরি করা ডেটা টাইপ। যেহেতু এগুলি কেবলমাত্র উপাদান হতে পারে (কেবলমাত্র উপাদানগুলিতে সাধারণত একটি শ্রেণীর নাম থাকে), এটি প্রযুক্তিগতভাবে এমন একটি nodeList
যা কেবলমাত্র টাইপ উপাদানগুলির নোড থাকে এবং ডিজাইনাররা একটি আলাদাভাবে নাম সংগ্রহ করতে পারে যা একটি ছিল elementList
, তবে তারা কেবল একটি প্রকার ব্যবহার করতে বেছে নিয়েছিল সংগ্রহের এটির মধ্যে কেবলমাত্র উপাদান ছিল কিনা তা।
সম্পাদনা: এইচটিএমএল 5 এমন একটি সংজ্ঞা দেয় HTMLCollection
যা এইচটিএমএল উপাদানগুলির একটি তালিকা (কোনও নোড নয়, কেবলমাত্র উপাদানসমূহ)। এইচটিএমএল 5 এর বেশ কয়েকটি বৈশিষ্ট্য বা পদ্ধতি এখন একটি ফেরত দেয় HTMLCollection
। এটি একটি এর সাথে ইন্টারফেসের মতো একইরকম nodeList
, এখন একটি পার্থক্য তৈরি হয়েছে যে এটিতে কেবলমাত্র উপাদান রয়েছে, কোনও ধরণের নোড নয়।
আপনি কীভাবে এটি ব্যবহার করেন (যতদূর আমি বলতে পারি) এর মধ্যে nodeList
এবং এর মধ্যে পার্থক্যটির HTMLCollection
খুব কম প্রভাব পড়ে, তবে এইচটিএমএল 5 এর ডিজাইনাররা এখন সেই পার্থক্য তৈরি করেছে।
উদাহরণস্বরূপ, element.children
সম্পত্তিটি একটি লাইভ এইচটিএমএল সংগ্রহ সংগ্রহ করে।