我有一个使用Jquery clone()克隆多个元素的问题。多个元素上的jquery clone()
我有HTML:
<div id="is_watermark">
<input class="is_watermark" type="checkbox" name="is_watermark" value="1" checked />
<span>Add watermark</span></div>
<div id="minify_image">
<p>By default image is 400px. You can change size:</p>
<input class="minify-radio" type="radio" name="minify" value="200" /><span>200px</span>
<input class="minify-radio" type="radio" name="minify" value="400" checked="checked"/><span>400px</span>
<input class="minify-radio" type="radio" name="minify" value="600" /><span>600px</span>
<input class="minify-radio" type="radio" name="minify" value="800"/><span>800px</span>
</div>
然后我用ajaxFileUpload基本上创造了新的形式,并通过Ajax发送图像:
我在我的Javascript如下:
var oldInputElements = $('.minify-radio, .is_watermark');
var newInputElements = $(oldInputElements).clone(true);
console.log(oldInputElements);
console.log(newInputElements);
在Firebug我发现oldInputElements
很好,代表了我在HTML中的内容,但是新创建的newInputElements
包含所有元素,但包含onl y来自无线电元件的一个普遍价值。例如,如果目前收音机选择的值为600,那么在新创建的变量newInputElements
中,所有五个输入元素(包括复选框!)将具有值600.
这是一个错误,还是我简单地丢失了某些东西?
您能提供一个显示问题的小提琴吗?它听起来像一个错误。 – 2013-02-12 12:18:17
当克隆元素只有默认值与它一起克隆时,下拉列表或单选按钮上的任何选择都不会与它一起克隆。试着看看'clone(true,true)'是否起作用,但是如果不是,你将不得不将任何选定的值沿着边存储在一个单独的对象中,并在插入后重新选择/填充克隆的元素。 – Nope 2013-02-12 12:20:03
如果您执行'oldInputElements.clone(true)',它是否按预期工作? – 2013-02-12 12:23:26