জেভাস্ক্রিপ্ট এইচটিএমএল ডম নেভিগেশন
- পূর্ববর্তী পৃষ্ঠা ডম ইভেন্ট লিস্টেনার
- পরবর্তী পৃষ্ঠা ডম নোড
HTML DOM-এর সাহায্যে, আপনি নোড ট্রিতে নোডগুলির সম্পর্ক দিয়ে নোড ট্রিতে সফর করতে পারেন
ডম নোড
W3C HTML DOM প্রতিষ্ঠানের মতে, HTML ডকুমেন্টের সকল জিনিসকে নোড বলা হয়:
- সমগ্র ডকুমেন্টকে ডকুমেন্ট নোড বলা হয়
- প্রত্যেক HTML ইলেমেন্টকে ইলেমেন্ট নোড বলা হয়
- HTML ইলেমেন্টের মধ্যে টেক্সটকে টেক্সট নোড বলা হয়
- প্রত্যেক HTML অ্যাট্রিবিউটকে অ্যাট্রিবিউট নোড বলা হয়
- সকল মন্তব্যকে মন্তব্য নোড বলা হয়

HTML DOM-এর সাহায্যে, নোড ট্রিতের সমস্ত নোডকে JavaScript-এর মাধ্যমে পরিগণনা করা যায়
নতুন নোড তৈরি করা যায়, এছাড়াও সমস্ত নোডকে সংশোধন এবং মোছা যায়
নোড সম্পর্ক
নোড ট্রিতে নোডগুলির মধ্যে একটি স্তরবদ্ধ সম্পর্ক আছে
- শব্দ (মাতা, সন্তান এবং সহস্রত্বী, parent, child এবং sibling) এই সম্পর্ককে বর্ণনা করার জন্য ব্যবহৃত হয়
- নোড ট্রির শীর্ষ নোডকে মূল নোড বলা হয় (মূল নোড কোন মাতা নেই)
- প্রত্যেক নোড একটি মাতা নোড আছে, প্রত্যেকটি মূল নোড নিচে নেই (মূল নোড কোন মাতা নেই)
- নোড একটি নির্দিষ্ট সংখ্যক সন্তান ধারণ করতে পারে
- সহস্রত্বী (ভাই বা বোন) হল একই মাতার নোড
<html> <head> <title>DOM টিউটোরিয়াল</title> </head> <body> <h1>DOM প্রথম শিক্ষা</h1> <p>Hello world!</p> </body> </html>

উপরোক্ত HTML থেকে আপনি নিম্নলিখিত তথ্য পড়তে পারবেন:
- <html> হল রূপান্তরকারী নোড
- <html> কোন মাতা নেই
- <html> হল <head> এবং <body> এর মাতা
- <head> হল <html> এর প্রথম সন্তান
- <body> হল <html> এর শেষ সাব-নোড
একইসঙ্গে:
- <head> একটি সাব-নোড আছে: <title>
- <title> একটি সাব-নোড (টেক্সট নোড) আছে: "DOM শিক্ষাদীপ্তি"
- <body> দুটি সাব-নোড আছে: <h1> এবং <p>
- <h1> একটি সাব-নোড আছে: "DOM প্রথম পর্ব"
- <p> একটি সাব-নোড আছে: "Hello world!"
- <h1> এবং <p> একইসঙ্গে
নোডগুলোর মধ্যে নেভিগেশন
JavaScript-এর মাধ্যমে, নোডগুলোর মধ্যে নেভিগেশন করতে নোড বৈশিষ্ট্যগুলো ব্যবহার করা যেতে পারে:
- parentNode
- childNodes[nodenumber]
- firstChild
- lastChild
- nextSibling
- previousSibling
সাব-নোড এবং নোড মান
DOM প্রক্রিয়াকরণের একটি সাধারণ ভুল ধারণা হল উপাদান নোডের মধ্যে টেক্সট থাকার বিশ্বাস
উদাহরণ:
<title id="demo">DOM শিক্ষাদীপ্তি</title>
(উপরোক্ত উদাহরণগুলিতের)উপাদান নোড <title> না ধারণ করেটেক্সট ধারণ করে
এটি "DOM শিক্ষাদীপ্তি" মানেরটেক্সট নোড。
টেক্সট নোডের মান নোডের innerHTML
বৈশিষ্ট্যকে প্রাপ্তি করা হয়:
var myTitle = document.getElementById("demo").innerHTML;
innerHTML বৈশিষ্ট্যকে প্রথম সাব-নোডের প্রাপ্তির সমতুল্য nodeValue
:
var myTitle = document.getElementById("demo").firstChild.nodeValue;
এভাবেও প্রথম সাব-নোডের প্রাপ্তি করা যেতে পারে:
var myTitle = document.getElementById("demo").childNodes[0].nodeValue;
নিম্নোক্ত তিনটি উদাহরণে ফিরিয়ে নেওয়া <h1>
উপাদানের টেক্সট এবং কপি করুন <p>
উপাদানের মধ্যে:
উদাহরণ ১
<html> <body> <h1 id="id01">আমার প্রথম পেজ</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").innerHTML; </script> </body> </html>
উদাহরণ ২
<html> <body> <h1 id="id01">আমার প্রথম পেজ</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").firstChild.nodeValue; </script> </body> </html>
উদাহরণ ৩
<html> <body> <h1 id="id01">আমার প্রথম পেজ</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue; </script> </body> </html>
InnerHTML
এই ট্যুটোরিয়ালে, আমরা innerHTML
এইভাবে HTML ইলেমেন্টের কনটেন্ট পাওয়া যায়。
কিন্তু, উপরোক্ত অন্যান্য পদ্ধতি শিখা করা সাহায্য করে DOM-এর ট্রি কাঠামো এবং নেভিগেশন বোঝা করতে
DOM রূপরেখা নোড
দুই বিশেষ property সম্পূর্ণ নথিপত্র পরিদর্শন করতে দেয়:
- document.body - নথিপত্রের body
- document.documentElement - সম্পূর্ণ নথিপত্র
উদাহরণ
<html> <body> <p>Hello World!</p> <div> <p>DOM খুবই উপযোগী!</p> <p>এই উদাহরণটি <b>document.body</b> property-এর প্রদর্শন করে</p> </div> <script> alert(document.body.innerHTML); </script> </body> </html>
উদাহরণ
<html> <body> <p>Hello World!</p> <div> <p>DOM খুবই উপযোগী!</p> <p>এই উদাহরণটি <b>document.documentElement</b> property-এর প্রদর্শন করে</p> </div> <script> alert(document.documentElement.innerHTML); </script> </body> </html>
nodeName property
nodeName
এই property নোডের নাম নির্ধারণ করে
- nodeName property অপারেশনাল নয়
- নোডের nodeName ইলেমেন্ট ট্যাগ নামের সমতুল্য
- নোডের nodeName হলো property এর নাম
- টেক্সট নোডের nodeName সবসময় #text
- নথিপত্র নোডের nodeName সবসময় #document
উদাহরণ
<h1 id="id01">আমার প্রথম ওয়েবসাইট</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").nodeName; </script>
পরামর্শ:nodeName সবসময় HTML ইলেমেন্টের বড় ট্যাগ নাম ধারণ করে
nodeValue property
nodeValue
এই property নোডের মান নির্ধারণ করে
- ইলেমেন্ট নোডের nodeValue undefined
- টেক্সট নোডের nodeValue হলো লিখিত টেক্সট
- নোডের nodeValue হলো property এর মান
nodeType property
nodeType
এই property নোডের ধরন ফিরিয়ে দেয়。nodeType
এটি অপারেশনাল নয়。
উদাহরণ
<h1 id="id01">আমার প্রথম ওয়েবসাইট</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").nodeType; </script>
সবচেয়ে মূল্যবান nodeType প্রতিশব্দটি হল:
নোড | ধরন | উদাহরণ |
---|---|---|
ELEMENT_NODE | 1 | <h1 class="heading">W3School</h1> |
ATTRIBUTE_NODE | 2 | class = "heading" (ত্যাগ করা হয়েছে) |
TEXT_NODE | 3 | W3School |
COMMENT_NODE | 8 | <!-- এটি মন্তব্য --> |
DOCUMENT_NODE | 9 | HTML ডকুমেন্ট এটা নিজেই (<html> এর পিতা) |
DOCUMENT_TYPE_NODE | 10 | <!Doctype html> |
টাইপ 2 এইচটিএমএল ডম-এ ত্যাগ করা হয়েছে।XML DOM-এ ত্যাগ করা হয়নি。
- পূর্ববর্তী পৃষ্ঠা ডম ইভেন্ট লিস্টেনার
- পরবর্তী পৃষ্ঠা ডম নোড