使用所选值克隆选择元素

时间:2014-07-19 12:57:09

标签: javascript jquery

http://jsbin.com/jejujizi/1/edit

$(document).ready(function() {
  $(".cs").on('click', function() {
    $(".newclones").append("<div class='container'>").append($(".toclone .clone").clone()).append("<button class='rem'>Delete</button>");

    $(".rem").on('click', function() {
      $(this).prev().remove();
      $(this).remove();
    });
  });
});

克隆select元素不是问题,克隆带有更改值的select元素是问题所在。 (你可以在我的小提琴中看到)

为什么不克隆更改的值,如何解决?

1 个答案:

答案 0 :(得分:3)

根据clone() docs

  

出于性能原因,某些表单元素的动态状态(例如,键入textarea的用户数据和对select的用户选择)不会复制到克隆元素。

相反,您只需在克隆元素后自行复制值:

$(document).ready(function() {
  $(".cs").on('click', function() {
    var toClone = $('.toclone .clone');
    var toCloneClone = toClone.clone().val(toClone.val());

    $(".newclones").append("<div class='container'>").append(toCloneClone).append("<button class='rem'>Delete</button>");

    $(".rem").on('click', function() {
      $(this).prev().remove();
      $(this).remove();
    });
  });
});

http://jsbin.com/qocuyuhi/1/