هل من الممكن استنساخ عنصر html الكائنات في جافا سكريبت / مسج?
-
06-09-2019 - |
سؤال
أنا أبحث عن بعض النصائح حول كيفية حل المشكلة.
لدي عنصر html (مثل تحديد مربع حقل الإدخال) في الجدول.الآن أريد أن نسخ الكائن توليد جديدة في واحدة من نسخ ، مع جافا سكريبت أو مسج.أعتقد أن هذا يجب أن تعمل بطريقة أو بأخرى ولكن أنا قليلا جاهل في هذه اللحظة.
شيء من هذا القبيل (البرمجية الزائفة):
oldDdl = $("#ddl_1").get();
newDdl = oldDdl;
oldDdl.attr('id', newId);
oldDdl.html();
المحلول
استخدام الكود الخاص بك يمكنك القيام بشيء مثل هذا في جافا سكريبت عادي باستخدام كلونينود () طريقة:
// Create a clone of element with id ddl_1:
let clone = document.querySelector('#ddl_1').cloneNode( true );
// Change the id attribute of the newly created element:
clone.setAttribute( 'id', newId );
// Append the newly created element on element p
document.querySelector('p').appendChild( clone );
أو باستخدام jQuery. استنساخ () الطريقة (وليس الأكثر كفاءة):
$('#ddl_1').clone().attr('id', newId).appendTo('p'); // append to where you want
نصائح أخرى
مع جافا سكريبت الأصلي:
newelement = element.cloneNode(bool)
حيث يشير المنطقي إلى ما إذا كنت تريد استنساخ العقد الطفل أم لا.
نعم، يمكنك نسخ الأطفال من عنصر واحد ولصقهم في العنصر الآخر:
var foo1 = jQuery('#foo1');
var foo2 = jQuery('#foo2');
foo1.html(foo2.children().clone());
انها في الواقع سهلة للغاية في مسج:
$("#ddl_1").clone().attr("id",newId).appendTo("body");
التغيير .Appendto () بالطبع ...
جرب هذا:
$('#foo1').html($('#foo2').children().clone());
في خط واحد:
$('#selector').clone().attr('id','newid').appendTo('#newPlace');
تحتاج إلى تحديد "#foo2" كما محدد.ثم الحصول عليه مع html().
هنا هو html:
<div id="foo1">
</div>
<div id="foo2">
<div>Foo Here</div>
</div>
هنا هو جافا سكريبت:
$("#foo2").click(function() {
//alert("clicked");
var value=$(this).html();
$("#foo1").html(value);
});
هنا هو jsfiddle: http://jsfiddle.net/fritzdenim/DhCjf/