दिलचस्प पोस्ट
जेएस को गणित करने के लिए मजबूर कैसे करें, इसके बजाय दो स्ट्रिंग को एक साथ रखा जाए विंक कमांड लाइन में yanked पाठ कैसे पेस्ट करें? MySQL त्रुटि 2006: mysql सर्वर दूर चला गया है XMLHttpRequest फ़ाइल लोड नहीं कर सकता। क्रॉस मूल अनुरोध केवल HTTP के लिए समर्थित हैं उपयोग के मामलों के आरेख में शामिल और विस्तार के बीच क्या अंतर है? एंड्रॉइड: लॉन्च मोड में बग = "सिंगलटास्क"? -> गतिविधि स्टैक संरक्षित नहीं है जावा में प्रतीक्षा करें और सूचित कैसे करें? Natsort फ़ंक्शन के पायथन एनालॉग ("प्राकृतिक ऑर्डर" एल्गोरिथ्म का उपयोग करके एक सूचीबद्ध करें) यह देखने के लिए कैसे जांच करें कि क्या मान एक MySQL में पूर्णांक है? मैं जावास्क्रिप्ट में वर्तमान तारीख कैसे प्राप्त करूं? पांडा + डेटाफ्रेम – आंशिक स्ट्रिंग द्वारा चयन करें एकाधिक जावास्क्रिप्ट सरणी के बीच मिलान ढूंढना क्लासनोटफ़ाउंड अपवाद जब ईक्लीपस बिल्ड पथ में यूजर लाइब्रेरी का उपयोग करते हुए क्या आंतरिक वर्ग निजी चर का उपयोग कर सकते हैं? स्ट्रिंग स्ट्रिंग और स्ट्रिंग स्ट्रेटल के बीच अंतर क्या है?

HTMLCollection, नोड सूची, और ऑब्जेक्ट्स के बीच अंतर

जब DOM की बात आती है तो मुझे हमेशा एचटीएमएल संकल्प, ऑब्जेक्ट्स, और एरे के बीच भ्रमित किया जाता है उदाहरण के लिए…

  1. document.getElementsByTagName("td") और $("td") बीच अंतर क्या है?
  2. $("#myTable") और $("td") ऑब्जेक्ट हैं (jQuery ऑब्जेक्ट्स) कंसोल.लॉग उनके पास DOM तत्वों की सरणी क्यों दिखा रहा है, और वे ऑब्जेक्ट नहीं हैं और एक सरणी नहीं है?
  3. क्या मायावी "नोड सूची" सभी के बारे में है, और मैं एक को कैसे चुनूं?

कृपया नीचे दिए गए स्क्रिप्ट के किसी भी व्याख्या को भी प्रदान करें।

धन्यवाद

 [123,"abc",321,"cba"]=[123,"abc",321,"cba"] {123:123,abc:"abc",321:321,cba:"cba"}=Object { 123=123, abc="abc", 321=321, more...} Node= Node { ELEMENT_NODE=1, ATTRIBUTE_NODE=2, TEXT_NODE=3, more...} document.links= HTMLCollection[a #, a #] document.getElementById("myTable")= <table id="myTable"> document.getElementsByClassName("myRow")= HTMLCollection[tr.myRow, tr.myRow] document.getElementsByTagName("td")= HTMLCollection[td, td, td, td] $("#myTable")= Object[table#myTable] $("td")= Object[td, td, td, td] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> <title>Collections?</title> <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ console.log('[123,"abc",321,"cba"]=',[123,"abc",321,"cba"]); console.log('{123:123,abc:"abc",321:321,cba:"cba"}=',{123:123,abc:"abc",321:321,cba:"cba"}); console.log('Node=',Node); console.log('document.links=',document.links); console.log('document.getElementById("myTable")=',document.getElementById("myTable")); console.log('document.getElementsByClassName("myRow")=',document.getElementsByClassName("myRow")) console.log('document.getElementsByTagName("td")=',document.getElementsByTagName("td")); console.log('$("#myTable")=',$("#myTable")); console.log('$("td")=',$("td")); }); </script> </head> <body> <a href="#">Link1</a> <a href="#">Link2</a> <table id="myTable"> <tr class="myRow"><td>td11</td><td>td12</td></tr> <tr class="myRow"><td>td21</td><td>td22</td></tr> </table> </body> </html> 

वेब के समाधान से एकत्रित समाधान "HTMLCollection, नोड सूची, और ऑब्जेक्ट्स के बीच अंतर"

सबसे पहले मैं HTMLCollection और HTMLCollection बीच का अंतर HTMLCollection

दोनों इंटरफेस DOM नोड्स के संग्रह हैं। ये वे तरीकों में भिन्न हैं जो वे प्रदान करते हैं और इन प्रकार के नोड्स में हो सकते हैं। जबकि एक HTMLCollection में कोई भी नोड प्रकार हो सकता है, एक HTMLCollection में एलीमेंट नोड्स ही शामिल होना चाहिए।
एक HTMLCollection एक HTMLCollection रूप में एक ही तरीके प्रदान करता है और इसके अतिरिक्त namedItem

संग्रह हमेशा उपयोग किए जाते हैं जब कई नोड्स को एक्सेस प्रदान किया जाता है, उदाहरण के लिए, अधिकांश चयनकर्ता विधियां (जैसे getElementsByTagName ) एकाधिक नोड्स वापस कर देती हैं या सभी बच्चों ( element.childNodes ) के संदर्भ में प्राप्त करती हैं।

अधिक जानकारी के लिए, DOM4 विनिर्देश पर एक नज़र डालें – संग्रह ।

document.getElementsByTagName("td") और $("td") बीच अंतर क्या है?

getElementsByTagName डीओएम इंटरफ़ेस की विधि है। यह एक टैग नाम को इनपुट के रूप में स्वीकार करता है और HTMLCollection देता है (कुछ ब्राउज़रों ने इसके बजाय HTMLCollection लौटने का HTMLCollection किया, जो ठीक है, क्योंकि यह HTMLCollection का एक सुपरसेट है)।

$("td") संभवतः jQuery है यह किसी भी वैध सीएसएस / jQuery चयनकर्ता स्वीकार करता है और एक jQuery ऑब्जेक्ट देता है।

मानक डोम संग्रह और jQuery चयनों के बीच सबसे बड़ा अंतर यह है कि आम तौर पर डोम संग्रह आम तौर पर रहते हैं (हालांकि सभी तरीकों से कोई लाइव संग्रह नहीं लौटाता है), यानी DOM में कोई भी परिवर्तन संग्रह में दिखाई देता है यदि वे प्रभावित होते हैं। वे DOM ट्री पर एक दृश्य की तरह हैं, जबकि jQuery के चयन डॉम ट्री के स्नैपशॉट हैं, फ़ंक्शन को फिलहाल कहा गया था।

कंसोल.लॉग उनके पास DOM तत्वों की सरणी क्यों दिखा रहा है, और वे ऑब्जेक्ट नहीं हैं और एक सरणी नहीं है?

jQuery के ऑब्जेक्ट सरणी-जैसी ऑब्जेक्ट हैं, अर्थात् उनके पास संख्यात्मक गुण हैं और एक length संपत्ति (ध्यान रखें कि सरणी केवल ऑब्जेक्ट्स हैं)। ब्राउज़र्स एक विशेष तरीके से सरणियों और सरणी-प्रकार की वस्तुओं को प्रदर्शित करते हैं, जैसे [ ... , ... , ... ]

क्या मायावी "नोड सूची" सभी के बारे में है, और मैं एक को कैसे चुनूं?

मेरे जवाब का पहला भाग देखें आप NodeList चयन नहीं कर सकते हैं, वे एक चयन का परिणाम हैं।

जहाँ तक मुझे पता है कि NodeList प्रोग्रामैटिक रूप से बनाने का एक तरीका भी नहीं है (यानी एक खाली जगह बनाने और बाद में नोड्स जोड़ना), वे केवल कुछ DOM विधियों / गुणों से लौटाए जाते हैं

0. एक HTMLCollection और एक HTMLCollection बीच क्या अंतर है?

आपके लिए कुछ परिभाषाएं यहां दी गई हैं

डोम स्तर 1 युक्ति – विविध वस्तु परिभाषाएं :

इंटरफ़ेस HTMLCollection

एक HTMLCollection नोड्स की एक सूची है। एक व्यक्तिगत नोड को या तो ऑर्डिनल इंडेक्स या नोड के नाम या आईडी एट्रिब्यूट्स द्वारा एक्सेस किया जा सकता है। नोट: एचटीएमएल डोम में संग्रह का अर्थ है कि वह स्वचालित रूप से अद्यतित हो जाते हैं जब अंतर्निहित दस्तावेज़ परिवर्तित हो जाते हैं।

डोम स्तर 3 युक्ति – नोडलिस्ट

इंटरफ़ेस नोडलिस्ट

नोडलिस्ट इंटरफ़ेस नोड्स के क्रमबद्ध संकलन की अवशेष प्रदान करता है, बिना यह परिभाषित या बाधा कैसे करता है कि यह संग्रह कैसे लागू होता है। डोम में नोडलिस्ट ऑब्जेक्ट लाइव हैं।

नोडलाइस्ट में आइटम 0 से शुरू होने वाले एक अभिन्न सूचकांक के माध्यम से पहुंचा जा सकते हैं।

इसलिए वे दोनों में लाइव डेटा हो सकता है जिसका मतलब है कि जब उनके मूल्यों में DOM अपडेट हो जाएगा। उनके कार्यों में एक अलग सेट भी होता है

आप नोट करेंगे कि क्या आप कंसोल का निरीक्षण करते हैं यदि आप अपनी स्क्रिप्ट चलाते हैं, तो table DOM तत्व में HTMLCollection[1] NodeList[2] और एक children HTMLCollection[1] । वे अलग क्यों हैं? क्योंकि HTMLCollection केवल तत्व नोड्स हो सकते हैं, HTMLCollection में एक पाठ नोड भी शामिल है

यहां छवि विवरण दर्ज करें

1. document.getElementsByTagName("td") और $("td") बीच क्या अंतर है?

document.getElementsByTagName("td") DOM तत्वों (एक NodeList ) की एक सरणी देता है, $("td") को एक jQuery ऑब्जेक्ट कहा जाता है जिसमें document.getElementsByTagName("td") के तत्वों की इसकी गुणधर्म 0 , 1 , 2 , आदि। मुख्य अंतर यह है कि jQuery ऑब्जेक्ट को पुनः प्राप्त करने के लिए थोड़ा धीमा होता है लेकिन सभी आसान jQuery फ़ंक्शंस तक पहुंच देता है।

2. $("#myTable") और $("td") ऑब्जेक्ट हैं ( jQuery ऑब्जेक्ट्स)। console.log उनके पास DOM तत्वों की सरणी क्यों दिखा रहा है, और वे ऑब्जेक्ट नहीं हैं और एक सरणी नहीं है?

वे अपने गुणों 0 , 1 , 2 , आदि के साथ वस्तुओं को DOM तत्वों पर सेट करते हैं। यह एक सरल उदाहरण है: यह कैसे काम करता है:

jsFiddle

  var a = { 1: "first", 2: "second" } alert(a[1]); 

3. मायावी "नोडलिस्ट्स" सभी के बारे में क्या है, और मैं एक को कैसे चुनूं?

आप उन्हें अपने कोड में पुनर्प्राप्त कर रहे हैं, getElementsByClassName और getElementsByTagName दोनों NodeList एस

NodeList

$("td") विस्तारित jQuery ऑब्जेक्ट है और इसमें jQuery के तरीकों हैं, यह जेक्जरी ऑब्जेक्ट देता है जिसमें HTML ऑब्जेक्ट्स की सरणी होती है। document.getElementsByTagName("td") कच्चे जेएस विधि है और नोडलिस्ट को रिटर्न देती है। इस आलेख को देखें