আমি লক্ষ্য করেছি যে প্রথম উত্তরটি আমার প্রয়োজনের মতো নয়, তাই আমি বেশ কয়েকটি পরিবর্তন করেছি এবং অনুভব করেছি যে আমি এটি এখানে আবার পোস্ট করব।
উন্নত replaceTag(<tagName>)
replaceTag(<tagName>, [withDataAndEvents], [withDataAndEvents])
যুক্তি:
- ট্যাগনাম: স্ট্রিং
- ট্যাগের নাম যেমন "ডিভ", "স্প্যান" ইত্যাদি
- ডেটাএন্ডএভেন্টস সহ: বুলিয়ান
- "একটি বুলিয়ান ইঙ্গিত দিচ্ছে যে ইভেন্ট হ্যান্ডলারগুলি উপাদানগুলির সাথে অনুলিপি করা উচিত কিনা j jQuery 1.4 হিসাবে, উপাদানগুলির ডেটাও অনুলিপি করা হবে।" তথ্য
- ডিপ উইথডেটাএন্ড এভেন্টস: বুলিয়ান ,
- একটি বুলিয়ান ইঙ্গিত দিচ্ছে যে ক্লোন করা উপাদানটির সমস্ত বাচ্চার ইভেন্ট ইভেন্ট হ্যান্ডলার এবং ডেটা অনুলিপি করা উচিত। ডিফল্টরূপে এর মান প্রথম যুক্তির মানের সাথে মেলে (যা মিথ্যাতে ডিফল্ট হয়) "" তথ্য
রিটার্নস:
একটি নতুন তৈরি jQuery উপাদান
ঠিক আছে, আমি জানি এখানে এখন কয়েকটি উত্তর রয়েছে তবে আমি এটি আবার লিখতে পেরেছিলাম।
এখানে আমরা ক্লোনিং ব্যবহার করি ঠিক তেমনভাবে ট্যাগটি প্রতিস্থাপন করতে পারি। আমরা .Cone এর সাথে একই সিনট্যাক্সটি অনুসরণ করছি withDataAndEventsএবং deepWithDataAndEventsযা ব্যবহারে শিশু নোডের ডেটা এবং ইভেন্টগুলি অনুলিপি করে ।
উদাহরণ:
$tableRow.find("td").each(function() {
$(this).clone().replaceTag("li").appendTo("ul#table-row-as-list");
});
উৎস:
$.extend({
replaceTag: function (element, tagName, withDataAndEvents, deepWithDataAndEvents) {
var newTag = $("<" + tagName + ">")[0];
// From [Stackoverflow: Copy all Attributes](http://stackoverflow.com/a/6753486/2096729)
$.each(element.attributes, function() {
newTag.setAttribute(this.name, this.value);
});
$(element).children().clone(withDataAndEvents, deepWithDataAndEvents).appendTo(newTag);
return newTag;
}
})
$.fn.extend({
replaceTag: function (tagName, withDataAndEvents, deepWithDataAndEvents) {
// Use map to reconstruct the selector with newly created elements
return this.map(function() {
return jQuery.replaceTag(this, tagName, withDataAndEvents, deepWithDataAndEvents);
})
}
})
নোট করুন যে এটি নির্বাচিত উপাদানটিকে প্রতিস্থাপন করে না , এটি সদ্য নির্মিতটিকে ফিরিয়ে দেয়।