2010-09-23 27 views
3

考虑下面的HTML:jQuery clone()不复制<select> DOM属性?

<a id="add" herf="#">add</a> 

<div class="list"> 
    <select> 
     <option>1</option> 
     <option>2</option> 
    </select> 
</div> 

和Javascript:

$('#add').click(function() { 
    var copy = $('.list').last().clone(); 
    copy.appendTo('body'); 
}); 

(OR:http://jsfiddle.net/5A5pN/

如果您选择点击Add之前选择的选项,你会发现新添加选择框仍然使用1作为其原始值,而不是2.

任何方法可以解决这个问题?

谢谢!

+0

可能重复:http://stackoverflow.com/questions/742810/clone-isnt-cloning-select-values – timaschew 2012-11-16 16:40:14

回答

5

是的!但你可以做一个解决方法。这样,

$('#add').click(function() { 
    var orig = $('select',$('.list').last()); 
    var copy = $('.list').last().clone(); 
    $('select',copy).val(orig.val()); 
    copy.appendTo('body'); 
}); 

demo

+0

谢谢您的回答,工作就像一个魅力。如果你能简单地解释它是如何工作的,我会很感激。 – user435216 2010-09-25 13:55:35