簡體   English   中英

創建一個新元素並將克隆添加到此元素

[英]Create a new element and append a clone to this element

初始情況如下:

<div id="bigDiv">
    <div><input type="file"/></div>
</div>

克隆后所需的結果:

<div id="bigDiv">
    <div><input type="file"/></div>
    <div><input type="file"/></div>
</div>

我試過以下聲明:

var elm = $('#bigDiv :input[type=file]').change(function(event) {
    console.log('changed');
    $('#bigDiv :input[type=file]').eq(0).clone(true).val('').appendTo('#bigDiv');
});

這可行。 我的問題是,如何將這個新文件輸入元素附加到新的div元素中,該元素也必須先創建? (請參見上面的預期結果)

我認為我的jQuery語句也是可改進的。

克隆整個div會更容易。 嘗試這個:

var elm = $('#bigDiv :input[type=file]').change(function(event) {
    var $newDiv = $('#bigDiv div').first().clone(true).appendTo('#bigDiv');
    $('input[type="file"]', $newDiv).val('');
});

小提琴的例子

一線: http : //jsfiddle.net/6QL3k/2/ ,也可以在創建時使用

var elm = $('#bigDiv').on('change',' :input[type=file]',function(event) {
    console.log('changed');
     $(this).clone().appendTo($(this).parent().parent()).wrap('<div></div>');    
});

http://jsfiddle.net/6QL3k/

  var elm = $('#bigDiv :input[type=file]').change(function(event) {
      console.log('changed');
      var next = $(this).clone();
      var wrapNext = $('<div></div>');
      wrapNext.append(next);
      $(this).parent().after(wrapNext);
  });

不使用克隆的非常簡單的方法

var div = $("#bigDiv").find("div").first().html();
$("input").first().after(div);

工作演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM