ए node
डीओएम पदानुक्रम में किसी भी प्रकार की वस्तु के लिए सामान्य नाम है। node
document
या document.body
जैसे अंतर्निहित डीओएम तत्वों में से एक हो सकता है, यह HTML में निर्दिष्ट एक HTML टैग हो सकता है जैसे कि <input>
या <p>
या यह एक टेक्स्ट नोड हो सकता है जो सिस्टम द्वारा ब्लॉक को पकड़ने के लिए बनाया गया हो किसी अन्य तत्व के अंदर पाठ का। तो, संक्षेप में, node
कोई भी DOM ऑब्जेक्ट है।
एक element
एक विशिष्ट प्रकार का node
है क्योंकि कई अन्य प्रकार के नोड्स (टेक्स्ट नोड्स, टिप्पणी नोड्स, दस्तावेज़ नोड्स इत्यादि ...) हैं।
डोम में नोड्स का पदानुक्रम होता है जहां प्रत्येक नोड में माता-पिता हो सकते हैं, बाल नोड्स की एक सूची और अगली सिब्लिंग और पिछली सिब्लिंग हो सकती है। वह संरचना एक पेड़ की तरह पदानुक्रम बनाती है। document
नोड में बच्चे नोड्स की सूची होगी (head
नोड और body
नोड)। body
नोड में बाल नोड्स (आपके HTML पृष्ठ में शीर्ष स्तर के तत्व) की सूची होगी और इसी तरह।
तो, nodeList
nodes
की एक सरणी जैसी सूची है।
एक तत्व एक विशिष्ट प्रकार का नोड है, जिसे HTML में सीधे HTML टैग के साथ निर्दिष्ट किया जा सकता है और इसमें id
या class
जैसी गुण हो सकते हैं। बच्चों, आदि हो सकता है ... विभिन्न विशेषताओं के साथ टिप्पणी नोड्स, टेक्स्ट नोड्स, आदि जैसे अन्य प्रकार के नोड्स हैं। प्रत्येक नोड में एक संपत्ति .nodeType
है जो रिपोर्ट करती है कि यह किस प्रकार का नोड है। आप (MDN से आरेख) यहाँ नोड्स के विभिन्न प्रकार देख सकते हैं:
आप देख सकते हैं एक ELEMENT_NODE
नोड के एक विशेष प्रकार जहां nodeType
संपत्ति 1
के एक मूल्य है।
तो document.getElementById("test")
केवल एक नोड लौटा सकता है और यह एक तत्व (एक विशिष्ट प्रकार का नोड) होने की गारंटी देता है। इसके कारण यह सिर्फ एक सूची के बजाय तत्व देता है।
document.getElementsByClassName("para")
एक से अधिक ऑब्जेक्ट लौटा सकता है, डिजाइनरों ने nodeList
वापस करने का विकल्प चुना क्योंकि यह एक से अधिक नोड की सूची के लिए बनाया गया डेटा प्रकार है। चूंकि ये केवल तत्व हो सकते हैं (केवल तत्वों में आमतौर पर कक्षा का नाम होता है), यह तकनीकी रूप से nodeList
है जिसमें केवल इसमें टाइप तत्व का नोड होता है और डिजाइनर एक अलग नामित संग्रह बना सकते थे जो elementList
था, लेकिन उन्होंने बस उपयोग करना चुना एक प्रकार का संग्रह चाहे इसमें केवल तत्व हों या नहीं।
संपादित करें: एचटीएमएल 5 एक HTMLCollection
जो एचटीएमएल तत्वों (नहीं किसी भी नोड, केवल तत्वों) की एक सूची है परिभाषित करता है। एचटीएमएल 5 में कई गुण या विधियां अब HTMLCollection
लौटाती हैं। हालांकि यह nodeList
पर इंटरफ़ेस में बहुत समान है, लेकिन अब एक भेद बना दिया गया है जिसमें इसमें केवल तत्व होते हैं, न कि किसी प्रकार का नोड।
nodeList
और HTMLCollection
के बीच भेद का कोई प्रभाव नहीं है कि आप कैसे उपयोग करते हैं (जहां तक मैं कह सकता हूं), लेकिन HTML5 के डिजाइनरों ने अब उस भेद को बनाया है।
उदाहरण के लिए, element.children
संपत्ति एक लाइव HTMLCollection देता है।
12 प्रकार के नोड्स हैं, तत्व उनमें से एक है – Esailija
क्या ये सभी 12 प्रकार एलिमेंट ऑब्जेक्ट भी नहीं हैं? जैसे 1 = ELEMENT_NODE, 3 = TEXT_NODE, मुझे लगता है कि दोनों एलिमेंट ऑब्जेक्ट भी हैं। –
नहीं वे नहीं हैं। तत्व केवल एक ही प्रकार का नोड है। – Esailija