2011-06-08 19 views
5

यह पागल हो सकता है लेकिन यह मुझे कुछ समय के लिए दिलचस्प बनाता है :)एक चर वैम के मूल्य को कैसे बांधता है?

मैं जानना चाहता हूं कि कैसे जावास्क्रिप्ट चर को शरीर में जोड़ने के बाद डोम को बांधने के लिए बाध्य कर सकते हैं, उदाहरण के लिए?

var p = document.createElement('p'); 
p.innerHTML = 'Hello World'; 

document.body.appendChild(p); 

तो अब मैं इस p चर जो कि विशिष्ट पैराग्राफ की एक सटीक संदर्भ कोई फर्क नहीं पड़ता है जहाँ यह शरीर के अंदर स्थित है शामिल है।

p.innerHTML = 'new content'; 

आसानी से पैरा खोजने के लिए और बदल जाएगा अपने मूल्य

तो मेरे सवाल ... कैसे इस बाध्यकारी बना है?

क्या होगा यदि मैं चर के बाद इसे फिर से बनाना चाहता हूं? क्या इसे फिर से जोड़ने के लिए कोई तरीका है जिसे डोम के माध्यम से चलाने और इसे खोजने के बिना?

मैं सोच रहा था कि किसी भी तरह से डोम के अंदर प्रत्येक नोड का विशिष्ट पहचानकर्ता है जो id विशेषता नहीं है लेकिन किसी प्रकार का यूयूआईडी जिसे बाद में संदर्भित किया जा सकता है?

की तरह:

console.log(p.localName); //aoi12e2kj2322444r4t 
p = null; 

तो मैं अभी भी उस पैराग्राफ नोड इस UUID सोचा ठीक हो सकता है?

इस माहौल मैं किसी भी बाहरी नोड विशेषता के लिए पहुँच नहीं होगा, इस तरह name, id, data, आदि ..

तो मैं काफी पता है कि कैसे इस बंधन चर और डोम नोड के बीच बनाई गई है उत्सुक हूँ ?

उत्तर

0

बाइंडिंग पहली पंक्ति पर बनाई गई है, जहां आप document.createElement से p का परिणाम असाइन करते हैं। यह किसी भी अन्य समय से अलग नहीं है जब आप किसी चर को असाइन करते हैं, जो हमेशा वैरिएबल नाम को मान में जोड़ता है। जहां तक ​​स्क्रिप्ट का संबंध है, वहां कोई अन्य बाध्यकारी नहीं होता है। p एक HTMLElement है, और यह वह तत्व है जो खुलासा हुआ है।

ध्यान दें कि p.innerHTML = 'new content'; के लिए, तत्व को यह नहीं मिला है क्योंकि p पहले से ही तत्व को संदर्भित करता है। डीओएम करता है: यह दस्तावेजों और दस्तावेज़ तत्वों का खुलासा करता है।

यदि आप बाद में उसी तत्व के लिए एक और संदर्भ चाहते हैं, तो आपको इसे खोजने के लिए DOM विधियों (जैसे getElementById) का उपयोग करना होगा। यही वह है जिसके लिए वे हैं।

डीओएम तत्वों को कैसे उजागर करता है, यह आंतरिक रूप से कार्यान्वित किया जाता है और ब्राउज़र से ब्राउज़र या लाइब्रेरी से लाइब्रेरी में भिन्न होता है (क्योंकि डोम केवल ब्राउज़र में उपयोग नहीं किया जाता है)।

+0

धन्यवाद @outis, 'id' का उपयोग करने के बारे में मेरा केवल एक तत्व को संदर्भित करने वाले सीएसएस नियमों को तोड़ना/ओवरराइट करना था, क्योंकि जब मैं उनका उपयोग करता हूं तब तत्वों के लिए यूयूड्स बनाउंगा। फिर मैं उन्हें केवल यूआईआईडी असाइन करके ही वापस प्राप्त कर सकता हूं ... मैं 'id' पसंद करता हूं क्योंकि यह सही खोजने के लिए सबसे तेज़ है?मैंने डेटासेट पर भी सोचा लेकिन मुझे लगता है कि इसके डेटासेट द्वारा तत्वों को ढूंढने की प्रक्रिया उन प्रक्रियाओं को विकसित करेगी जो आईडी को जोड़ने से कहीं अधिक धीमी हैं .... और प्रत्येक तत्व के पास केवल एक आईडी आईडी हो सकती है जो सही है ...:/I अभी भी सोच रहा है कि सबसे अच्छा विकल्प क्या है, धन्यवाद आपके लिए बहुत कुछ धन्यवाद – zanona

1

मुझे विश्वास है कि यह आपके द्वारा उपयोग किए जाने वाले ब्राउज़र के आधार पर बदलता है। ऐसा करने का कोई मानक तरीका नहीं है। वर्तमान में आप या तो डोमेन पर आईडी या फिर से उपयोग करते हैं जब तक कि आप इच्छित तत्व तक नहीं पहुंच जाते।

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