jquery clone和select / select2 jquery克隆元素上的选定值丢失

时间:2015-03-13 07:58:33

标签: javascript jquery html

目前我遇到了select / select2和jQuery $.clone问题。

在一个html表单中,html选择框替换为select2,但select2 jQuery插件与此问题并不真正相关。

当我使用jQuery $.clone(true, true)获取表单的副本来处理它时,我遇到了问题。

当我尝试以下操作时:

window.clone =  $('#formSelector').clone(true,true);

克隆选定的值并丢失。见http://jsfiddle.net/straeger/ct31f34c/9/

即使我尝试通过调用删除select2,克隆的选择框也不会保留所选的值。

$('select').select2('destroy'); 
window.clone =  $('#formSelector').clone(true,true);

请参阅:http://jsfiddle.net/straeger/dokenyss/1/

一个有很大缺点的小黑客(如果没有ID)是将选定的值复制到克隆:

$clone.find('select')
    .each(function(index, value){
        var $el = $(value);
        $el.val($element.find('#'+$el.attr('id')).val());
    });

请参阅:http://jsfiddle.net/straeger/ct31f34c/10/

我的问题是处理这样一个问题的正确方法是什么?

如果我没有ID,有没有人知道从原始jQuery元素中选择原始元素的对应方法?

或者保留当前所选选项的方法?通过属性,例如

<option value="c" selected>C Value</selected>

0 个答案:

没有答案