चूंकि ओपी ने उन्हें जोड़ने से पहले सभी डुप्लिकेट आईडी को बदलने का एक तरीका पूछा, शायद ऐसा कुछ काम करेगा। मान लें कि आप इस जैसे एक HTML ब्लॉक में MainConfig_1 क्लोन करने के लिए चाहता था:
<div id="smallConfig">
<div id="MainConfig_1">
<ul>
<li id="red_1">red</li>
<li id="blue_1">blue</li>
</ul>
</div>
</div>
कोड निम्नलिखित की तरह कुछ, क्लोन ब्लॉक के सभी बच्चे तत्वों (और वंश) को खोजने के लिए हो सकता है, और उनके आईडी के एक का उपयोग कर संशोधित काउंटर:
var cur_num = 1; // Counter used previously.
//...
var cloned = $("#MainConfig_" + cur_num).clone(true, true).get(0);
++cur_num;
cloned.id = "MainConfig_" + cur_num; // Change the div itself.
$(cloned).find("*").each(function(index, element) { // And all inner elements.
if(element.id)
{
var matches = element.id.match(/(.+)_\d+/);
if(matches && matches.length >= 2) // Captures start at [1].
element.id = matches[1] + "_" + cur_num;
}
});
$(cloned).appendTo($("#smallConfig"));
इस तरह नए HTML बनाने के लिए:
<div id="smallConfig">
<div id="MainConfig_1">
<ul>
<li id="red_1">red</li>
<li id="blue_1">blue</li>
</ul>
</div>
<div id="MainConfig_2">
<ul>
<li id="red_2">red</li>
<li id="blue_2">blue</li>
</ul>
</div>
</div>
स्रोत
2011-06-14 13:32:16
@Adam Naylor होने के नाते चापलूस उपयोगी नहीं है। –