javascript - 克隆具有选定值的选择元素

标签 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 元素才是问题。 (正如你在我的 fiddle 中看到的那样)

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

最佳答案

根据 clone() docs :

For performance reasons, the dynamic state of certain form elements (e.g., user data typed into textarea and user selections made to a select) is not copied to the cloned elements.

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

$(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/

关于javascript - 克隆具有选定值的选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840650/

相关文章:

javascript - 如何在浏览器中访问全局对象?

javascript - 使用 JavaScript 的 HTMLCollection 更改事件

jquery - 使用 jquery Validate 的长表单导致 IE 缓慢脚本警告

javascript - 如何在不刷新页面的情况下通过ajax发布URL参数更改

javascript - 通过 Chrome 扩展查看 onclick 数据

javascript - 为测试多语言网站编写测试的最佳方法是什么?

javascript - Jquery 或 Javascript : which is faster and more fit in this scenario

javascript - 这些编写函数原型(prototype)的方法是否等效?

jquery - 如何缩小 jQuery 代码?

javascript - 仅使用 jquery 的可编辑表第一行文本