removeChild
फ़ंक्शन वास्तव में बच्चे नोड को पूरी तरह हटा देता है? या यह निर्दिष्ट पैरांट नोड के बच्चे होने के तत्व को हटा देता है? यदि यह वास्तव में तत्व को हटा नहीं देता है, तो तत्व को पूरी तरह से हटाने का कोई तरीका है?क्या हटाएं बच्चे वास्तव में तत्व को हटा देता है?
उत्तर
removeChild
विधि बस अपनी मूल से निकालता है। यदि यह पृष्ठ का एक दृश्य तत्व है, तो इसे पृष्ठ से हटा दिया जाएगा।
लेकिन जावास्क्रिप्ट में कचरा संग्रह है। इसका मतलब है कि जब नोड ऑब्जेक्ट स्वयं को संदर्भित करता है तब तक नोड ऑब्जेक्ट अस्तित्व में रहेगा। तो आप एक चर के लिए एक नोड असाइन कर सकते हैं, removeChild
का उपयोग अपने मूल नोड से 'prune' करने के लिए करें, और बाद में, इसे किसी अन्य नोड में डालें या संलग्न करें, जिससे प्रभावी रूप से इसे पृष्ठ पर चारों ओर ले जाया जा सके।
निम्नलिखित कोड एक नोड निकाल देंगे, और यह पेड़ को फिर से जोड़ने (और इस प्रकार, पृष्ठ के लिए) से पहले 10 सेकंड प्रतीक्षा:
var oldNode = someNode.removeChild(...);
setTimeout(function() {
document.documentElement.appendChild(oldNode);
}, 10000);
इसका मतलब है कि नोड वस्तु नहीं किया गया है स्मृति से हटा दिया गया है, क्योंकि इसमें अभी भी एक चर है (अर्थात्, oldNode
)।
एक और मामला:
var node = document.getElementById('test');
// ... do stuff
node.parentElement.removeChild(node);
// 'node' still exists, but has been removed from the page
// ... do some more stuff
node = document.getElementById('hello');
// The variable 'node' now points to something else;
// this means the original node will be deleted from memory
हैं, तो दूसरी ओर, आप अन्य चर को हटा दिया नोड को पुन: असाइन नहीं , तो वह उसके (दस्तावेज़ पेड़ के माध्यम से नहीं पहुँचा नहीं जा सकता, क्योंकि इसे वहां से हटा दिया गया है, और जेएस वैरिएबल के माध्यम से नहीं); इसलिए जावास्क्रिप्ट स्वचालित रूप से स्मृति से उसे साफ करेगा:
someNode.removeChild(...);
एक चर करने के लिए हटा दिया नोड असाइन करना और उसके बाद null
(या कुछ और) कि चर को बताए - मार्क बी उसके जवाब में पता चलता है की तरह - पूरी तरह से अनावश्यक है और, आईएमएचओ, मूर्खतापूर्ण।
removeChild डोम से तत्व को हटा देता है, लेकिन यदि आप इसे कहीं और फिर से डालने के लिए हटाने के लिए कर रहे हैं तो यह फ़ंक्शन से भी वापस आ गया है। इसलिए यह नहीं है
someNode.removeChild(...);
यह डोम से नोड निकाल देगा:
oldNode = someNode.removeChild(...);
oldNode = null;
यह पूरी तरह से नोड को नष्ट करेगा: आप वास्तव में हटा दिया नोड से छुटकारा पाने के लिए है कि वापसी मान को मारने के लिए होगा दिखाई लेकिन यह बचत होगी, ताकि आप इसे कहीं और सम्मिलित कर सकते हैं:
oldNode = someNode.removeChild(...);
पहला उदाहरण सही है, लेकिन मेरे पास ऐसी स्थिति थी जहां यह काम नहीं कर रहा था, उदा।'var aChild = document.createElement (...); someNode.appendChild (aChild); ... someNode.removeChild (aChild); 'नोड AChild चर संदर्भ के कारण रहता है। उस स्थिति में आपको नौकरी को पूरा करने के लिए 'चाइल्ड हटाएं' की आवश्यकता है। – CyberFonic
किसी अन्य संदर्भ से (जहां आप नहीं जानते कि हटाए गए नोड के अन्य संदर्भ हैं या नहीं), आप यह देखने के लिए जांच सकते हैं कि निकाला गया नोड किस स्थिति में है 'node.parentElement == null' –
यह खाता नहीं लेता है नोड के अन्य संदर्भ। मतलब अगर नोड को संदर्भित किया जाता है तो 'removeChild' पूरी तरह से नोड को हटा नहीं देगा। –
यदि आप वास्तव में एक डोम तत्व को हटाना चाहते हैं। निकालें अकेले चाइल्ड पर्याप्त नहीं है। यह स्टीव साउंडर्स के अनुसार है जो वाईएसलो के लेखक हैं। आपको
- 1. क्या jQuery हटाने का कार्य वास्तव में डोम तत्वों को हटा देता है?
- 2. बच्चे ब्रेकपॉइंट को अक्षम/हटाएं?
- 3. jQuery ::: क्या वास्तव में हटा दें?
- 4. जेपीए संग्रह से बच्चे को हटा रहा है
- 5. TransitionFromView पिछले दृश्य को हटा देता है
- 6. CoreDataGeneratedAccessors - removeObject ऑब्जेक्ट को हटा देता है?
- 7. जेपीए वनटोनी बच्चे को हटा नहीं रहा
- 8. वास्तव में एक गिट शाखा को कैसे हटाएं (यानी अपनी सभी वस्तुओं/प्रतिबद्धताओं को हटा दें)?
- 9. क्या ArrayList.clear() सभी निहित objecs को भी हटा देता है?
- 10. URLConnection.setDoOutput() को वास्तव में क्या करता है?
- 11. हटाएं कार्यों को हटा देता है तब भी जब बुला एप्लिकेशन बंद हो
- 12. प्रदर्शन क्यों करता है: इनलाइन-ब्लॉक; एक बच्चे तत्व से एक रेखांकन हटा दें?
- 13. अभिभावक रिकॉर्ड को वापस रोल करना बच्चे के रिकॉर्ड को हटा नहीं देता
- 14. जांच रहा है कि कोई तत्व वास्तव में उपयोगकर्ता को
- 15. नियमित सरणी के तत्व को हटाएं
- 16. java.util.Set में अंतिम तत्व को कैसे हटाएं?
- 17. डोम तत्व को कैसे हटाएं?
- 18. चुनें तत्व बच्चे वर्ग
- 19. जावास्क्रिप्ट डीओएम तत्व हटाएं
- 20. : पिछले वाले बच्चे पिछले तत्व
- 21. क्या रूबी में रेगेक्स हटा है?
- 22. किसी तत्व के पहले बच्चे को कैसे हटाएं लेकिन Jquery में $ (this) द्वारा संदर्भित किया गया है?
- 23. क्या गिट में एक शाखा को हटाना इतिहास से हटा देता है?
- 24. ग्रुप बाय डुप्लिकेट को हटा नहीं देता
- 25. इवेंट कीवर्ड वास्तव में क्या करता है?
- 26. क्या सरणी [-1] सरणी में अंतिम तत्व देता है?
- 27. TreeMap put() चुपचाप अन्य प्रविष्टियों को हटा देता है?
- 28. स्ट्रिंग.Trim() आवश्यकता से अधिक हटा देता है?
- 29. छड़ी तत्व दिखाई देता है
- 30. क्या गीट प्रवाह रिमोट सर्वर पर शाखा हटा देता है?
ओह धन्यवाद का उपयोग करने की आवश्यकता है :) –
क्या किसी भी चीज़ पर वापसी मूल्य निर्दिष्ट नहीं करना चाहिए, वही प्रभाव है? – awm
नल का सुविधाजनक और यह स्पष्ट करता है कि आप मूल्य को मिटा रहे हैं। 'oldNode = 'इस नोड को हटाएं'; 'बस वर्णों की बर्बादी की तरह लगता है। –