2013-05-12 16 views
13

में चुनना डोम तत्वों मैं थोड़ा पालन करके हैरान हूँ: चलो कहते हैं मैं para की आईडी के साथ एक पैराग्राफ तत्व मिल गया है करते हैं। Chromes कंसोल का उपयोग करना, अगर मैं कहूँक्रोम कंसोल

document.getElementById("para") 

मैं HTML स्निपेट <p id="para">....</p> के साथ वापस आ रहा हूँ, जबकि अगर मैं उदाहरण के लिए JavaScript लाइब्रेरी का डी 3 का चयन विधि और कहते हैं

d3.select("#para") 

मैं के साथ वापस आ रहा हूँ डीओएम नोड और अनुच्छेद तत्व के सभी गुणों और विधियों तक पहुंच सकते हैं।

क्यों इस अंतर है?

+2

'चयन()' विधि वापसी, नोड या उस नोड का प्रतिनिधित्व करने वाला ऑब्जेक्ट क्या करता है? –

+0

क्या आप सुनिश्चित हैं कि पहली विधि * एक HTML स्निपेट * लौटाती है, या हो सकता है कि आप डोम नोड की स्ट्रिंग प्रस्तुति देख रहे हों? – JJJ

+0

@ डेविड थॉमस: समस्या का हिस्सा यह है कि मुझे वास्तव में दोनों के बीच का अंतर नहीं पता है। क्या कोई लेख या कुछ है जहां मैं उन अवधारणाओं के बारे में पढ़ सकता हूं? –

उत्तर

23

डिफ़ॉल्ट रूप से, जब क्रोम में एक डोम नोड प्रवेश करने, यह मार्कअप के रूप में प्रदर्शित करता है। सामान्य ऑब्जेक्ट के रूप में DOM नोड को लॉग इन करने के लिए console.dir का उपयोग करें। कारण d3.select("#para") सामान्य ऑब्जेक्ट के रूप में दिखाता है कि यह विधि शायद एक डोम नोड वापस नहीं करती है, लेकिन एक ऑब्जेक्ट जो डोम नोड पर लपेटता है।

console.dir(document.getElementById("para")); 
+0

यह सही जवाब है वास्तव में, डाउनवोट अपर्याप्त है। 'd3.select' कस्टम ऑब्जेक्ट देता है। – dfsq

+1

@dfsq, शायद क्योंकि मैं अपने प्रारंभिक संस्करण में कुछ भी स्पष्ट नहीं किया downvoted गया;) – plalx

+0

धन्यवाद! मैं इस उत्तर को स्वीकार्य मानता हूं, लेकिन यह सुनिश्चित करने के लिए कि मैं वास्तव में इसे प्राप्त करता हूं: आप किसी ऑब्जेक्ट से क्या मतलब करते हैं जो डोम नोड पर लपेटता है? –

संबंधित मुद्दे