← Back to jQuery Course | Chapter 5: DOM Manipulation | Lesson 9 of 9

DOM Elements को Clone करना

clone() किसी selected element की एक copy बनाता है।
Syntax
javascript
var copy = $(selector).clone();
var deepCopy = $(selector).clone(true);

Basic clone()

basic clone() method किसी attached event handlers को copy किए बिना selected element और उसके descendants की एक deep copy बनाता है। copy तब तक पूरी तरह independent element है जब तक आप इसे DOM में कहीं insert नहीं करते।

उदाहरण: Basic clone()

javascript
<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  </head>
  <body>
    <div id="box">Original</div>
    <script>
      const $copy = $("#box").clone();
      $("body").append($copy);
    </script>
  </body>
</html>

कई Elements को Clone करना

clone() सिर्फ एक ही नहीं, matching elements के पूरे collection को एक साथ copy कर सकता है, independent copies का एक parallel set produce करते हुए। हर clone अलग है, इसलिए बाद में एक को modify करना दूसरों को असर नहीं करता।

उदाहरण: Clone Multiple Elements

javascript
<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  </head>
  <body>
    <p class="item">One</p><p class="item">Two</p>
    <script>
      const $copies = $(".item").clone();
      $("body").append($copies);
    </script>
  </body>
</html>

Events के साथ Clone करना

सिर्फ markup ही नहीं, original element से bound किसी भी event handlers और jQuery data को भी copy करने के लिए clone() को true pass करें। उस argument के बिना, एक cloned button बिल्कुल एक जैसा दिखेगा लेकिन clicks को उसी तरह respond नहीं करेगा।

उदाहरण: Clone with Events

javascript
<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  </head>
  <body>
    <button id="btn">Click</button>
    <script>
      $("#btn").on("click", function() { console.log("Clicked"); });
      const $copy = $("#btn").clone(true);
      $("body").append($copy);
    </script>
  </body>
</html>

Clone करके Modify करना

clone करने के बाद, आप original element को बिल्कुल भी बदले बिना copy का text, attributes, या classes freely बदल सकते हैं, क्योंकि अब दोनों पूरी तरह अलग DOM nodes हैं। किसी template element को duplicate करके हर copy को customize करने का यह एक common तरीका है।

उदाहरण: Clone and Modify

javascript
<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  </head>
  <body>
    <div id="template">Template</div>
    <script>
      const $copy = $("#template").clone();
      $copy.text("Modified copy").attr("id", "copy1");
      $("body").append($copy);
    </script>
  </body>
</html>

Forms को Clone करना

Cloning inputs और selects जैसे simple form controls को भी duplicate कर सकता है, हालांकि सावधानी ज़रूरी है क्योंकि cloned inputs आमतौर पर original जैसा ही name और id रखते हैं, जिसे आपको page पर duplicate identifiers से बचने के लिए बदलना होगा।

उदाहरण: Clone Forms

javascript
<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  </head>
  <body>
    <input id="field1" name="field1" value="Original">
    <script>
      const $copy = $("#field1").clone();
      $copy.attr("id", "field2").attr("name", "field2");
      $("body").append($copy);
    </script>
  </body>
</html>
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. एक id वाले element को clone करना और copy को append करना, जो page में duplicate ids बनाता है।
  2. यह उम्मीद करना कि .clone() click handlers copy करेगा, जबकि उनके लिए आपको .clone(true) चाहिए।
  3. .clone() call करना और copy को insert करना भूल जाना, जैसे $("#box").clone();, क्योंकि जब तक आप इसे append नहीं करते clone document में नहीं है।
चैप्टर सारांश
  • jQuery elements का text, HTML, और values get और set करता है, और attributes व properties पढ़ता और बदलता है।
  • आप elements के अंदर या बाहर content insert कर सकते हैं, और उन्हें remove, detach, या replace कर सकते हैं।
  • Elements को wrap, unwrap, और clone करना DOM को restructure करता है।

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.