node
DOM पदानुक्रम में किसी भी प्रकार की वस्तु के लिए A सामान्य नाम है। एक node
से एक हो सकता है में निर्मित इस तरह के रूप डोम तत्वों document
या document.body
, यह इस तरह के रूप में एक HTML टैग HTML में निर्दिष्ट किया जा सकता है <input>
या <p>
या यह एक पाठ नोड है कि एक और तत्व के अंदर पाठ का कोई खंड धारण करने के लिए प्रणाली द्वारा बनाई गई है हो सकता है । तो, संक्षेप में, कोई node
भी DOM ऑब्जेक्ट है।
एक element
विशिष्ट प्रकार है node
क्योंकि कई अन्य प्रकार के नोड्स हैं (पाठ नोड्स, टिप्पणी नोड्स, दस्तावेज़ नोड्स, आदि ...)।
DOM में नोड्स का एक पदानुक्रम होता है, जहाँ प्रत्येक नोड में एक माता-पिता, बच्चे के नोड्स की एक सूची और एक अगलीSibling और पिछलेSibling हो सकती है। यह संरचना एक पेड़ की तरह पदानुक्रम बनाती है। 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
, लेकिन उन्होंने सिर्फ एक प्रकार का उपयोग करने के लिए चुना यह संग्रह करने के लिए कि इसमें केवल तत्व हैं या नहीं।
EDIT: HTML5 परिभाषित करता है HTMLCollection
जो HTML तत्वों की सूची है (कोई नोड नहीं, केवल तत्व)। HTML5 में कई गुण या विधियाँ अब वापस आती हैं HTMLCollection
। हालांकि यह इंटरफ़ेस में बहुत समान है nodeList
, अब एक अंतर यह है कि इसमें केवल तत्व होते हैं, किसी प्रकार का नोड नहीं।
एक nodeList
और एक के बीच के अंतर HTMLCollection
का थोड़ा प्रभाव है कि आप एक का उपयोग कैसे करते हैं (जहां तक मैं बता सकता हूं), लेकिन एचटीएमएल 5 के डिजाइनरों ने अब यह अंतर बना लिया है।
उदाहरण के लिए, element.children
संपत्ति लाइव HTMLCollection लौटाती है।