Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> HTML

HTML DOM replaceChild() मेथड


replaceChild() मेथड क्या है?

DOM replaceChild() मेथड किसी पैरेंट नोड के एक चाइल्ड नोड को एक नए नोड से प्रतिस्थापित करता है। यह हटाए गए पुराने चाइल्ड नोड को लौटाता है।

सिंटैक्स

parentNode.replaceChild(newNode, oldNode)

पैरामीटर

  • newNode: नया नोड जो पुराने नोड को प्रतिस्थापित करेगा।
  • oldNode: प्रतिस्थापित होने वाला मौजूदा चाइल्ड नोड।

रिटर्न मान

प्रतिस्थापित (पुराना) चाइल्ड नोड।

उदाहरण

यह उदाहरण एक सूची में पहले विषय "Physics" को "Biology" से प्रतिस्थापित करता है:

<!DOCTYPE html>
<html>
<head>
<style>
  html { height: 100%; }
  body {
    text-align: center;
    color: #fff;
    background: #ff7f5094;
    height: 100%;
  }
  p { font-weight: 700; font-size: 1.2rem; }
  ul { list-style-type: none; padding: 0; }
  .btn {
    background: #0197F6;
    border: none;
    height: 2rem;
    border-radius: 2px;
    width: 35%;
    margin: 2rem auto;
    display: block;
    color: #fff;
    outline: none;
    cursor: pointer;
  }
  .show { font-size: 1.5rem; }
</style>
</head>
<body>
<h1>DOM replaceChild() मेथड डेमो</h1>
<p>नमस्ते, मेरे पसंदीदा विषय हैं:</p>
<ul id="subjectList">
  <li>Physics</li>
  <li id="chemistry">Chemistry</li>
  <li>Maths</li>
  <li>English</li>
</ul>
<button onclick="changeSubject()" class='btn'>Physics को Biology से बदलें</button>
<script>
  function changeSubject() {
    var textNode = document.createTextNode("Biology");
    var list = document.getElementById("subjectList");
    var oldChild = list.firstElementChild; // या list.childNodes[0] टेक्स्ट नोड्स के लिए
    var replaced = list.replaceChild(textNode, oldChild);
    console.log("प्रतिस्थापित:", replaced.textContent);
  }
</script>
</body>
</html>

आउटपुट

"Physics को Biology से बदलें" बटन पर क्लिक करने पर, सूची का पहला आइटम "Physics" से "Biology" में बदल जाता है।

महत्वपूर्ण बिंदु

  • पैरेंट पर कॉल करें: मेथड पैरेंट नोड पर कॉल किया जाता है, न कि पुराने या नए चाइल्ड पर।
  • पुराना नोड लौटाया जाता है: आप इसे बाद में उपयोग के लिए संग्रहीत कर सकते हैं (उदाहरण: अनडू कार्यक्षमता)।
  • नया नोड ले जाया जाता है: यदि newNode पहले से दस्तावेज़ में है, तो इसे अपने वर्तमान पैरेंट से हटा दिया जाता है।
  • टेक्स्ट नोड्स: आप document.createTextNode() से बने टेक्स्ट नोड्स के साथ तत्व नोड्स को प्रतिस्थापित कर सकते हैं (जैसा कि उदाहरण में)।

replaceChild() बनाम innerHTML

दृष्टिकोण पक्ष विपक्ष
replaceChild() सटीक नोड नियंत्रण, इवेंट लिसनर्स संरक्षित (नए नोड पर नहीं), कोई पार्सिंग नहीं अधिक वर्बोज़, नोड निर्माण आवश्यक
innerHTML सरल, HTML स्ट्रिंग्स के लिए सुविधाजनक सभी बच्चों को नष्ट/पुनर्निर्मित करता है, इवेंट लिसनर्स खो देता है, XSS जोखिम

सामान्य उपयोग के मामले

  • लोडिंग स्पिनर को वास्तविक कंटेंट से प्रतिस्थापित करना।
  • फॉर्म फ़ील्ड को पुष्टिकरण संदेश से स्वैप करना।
  • डायनामिक सूचियों में आइटम अपडेट करना (वर्चुअलाइज़्ड सूचियों के लिए कुशल)।
  • तत्व प्रकार बदलना (उदाहरण: <span> को <input> से प्रतिस्थापित करना इनलाइन एडिटिंग के लिए)।
  1. HTML DOM getBoundingClientRect() मेथड HTML DOM getBoundingClientRect() मेथड

    HTML DOM getBoundingClientRect() का उपयोग व्यूपोर्ट की स्थिति के सापेक्ष किसी तत्व का आकार लौटाने के लिए किया जाता है। यह DOMRect प्रकार का एक ऑब्जेक्ट लौटाता है जिसमें आठ गुण होते हैं: left, top, right, bottom, x, y, width, height। बाउंडिंग आयत की स्थिति स्क्रॉलिंग स्थिति बदलने पर बदलती है। सिंटैक

  1. HTML DOM hasAttributes() मेथड HTML DOM hasAttributes() मेथड

    HTML DOM hasAttributes() मेथड जांचता है कि किसी तत्व में कोई attributes हैं या नहीं। यह true लौटाता है यदि तत्व में कोई attribute है और यदि नहीं है तो false लौटाता है। यदि इस मेथड को एलिमेंट नोड के अलावा किसी अन्य नोड पर कॉल किया जाता है, तो लौटाया गया मान हमेशा false होगा। सिंटैक्स hasAttributes()

  1. HTML DOM focus() मेथड HTML DOM focus() मेथड

    HTML DOM focus() मेथड का उपयोग किसी HTML तत्व को फोकस देने के लिए किया जाता है। फोकस सभी HTML तत्वों पर लागू नहीं किया जा सकता। उदाहरण के लिए: आप <p> टैग को फोकस नहीं कर सकते। किसी तत्व से फोकस हटाने के लिए blur() मेथड का उपयोग करें। सिंटैक्स सिंटैक्स निम्नलिखित है: HTMLElementObject.focus()