多个元素上的Jquery clone()

多个元素上的Jquery clone(),jquery,clone,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">

我在使用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>
在Firebug中,我看到
oldInputElements
很好,它代表了我在HTML中拥有的内容,但是新创建的
newInputElements
包含所有元素,但只有一个通用值来自radio元素。例如,如果此时选择值为600的收音机,则在新创建的变量
newInputElements
中,所有五个输入元素(包括复选框!)的值都为600

这是一个错误,还是我只是错过了什么

$("input:radio").change( function() {
   $("input:radio").removeAttr("checked");
   $(this).prop("checked", true);
});
您可以使用此代码。删除选中的属性/属性,然后将该属性添加到当前选定的项/节点


你能提供一把小提琴来说明问题所在吗。但这听起来确实像一个bug。克隆元素时,只克隆默认值,下拉列表或单选按钮上的任何选择都不会被克隆。尝试查看
clone(true,true)
是否有效,但如果无效,则必须将所有选定的值存储在单独的对象中,并在插入后重新选择/填充克隆的元素。如果执行
oldInputElements.clone(true)
?oldInputElements.clone(true)-在我的一侧也执行相同操作,产生错误。>你能提供一个提琴吗?我只是想在提琴中创建一个提琴,看起来效果很好。谢谢你的回答,我使用了你提供的示例代码,效果很好。这是Firebug的屏幕:我也不能用小提琴来表示它(正如我在上面的评论中提到的)。但是当我使用我的初始值(似乎环境是有意义的)时,我得到了这样的结果:非常奇怪的是,它在对象的行上显示了正确的值,但是当我展开它时,所有的值都是600,600被发送到服务器。哇,是的,巨大的差异。你用你的实际代码而不是我给你的代码登录了chrome的控制台?@Aspiring Aqib在chrome中的行为是一样的。对于您的示例代码(onChange事件,它可以正常工作),但对于我的初始代码,它是相同的,对于新创建的元素-所有元素的值都是相同的,并且来自所选的单选按钮。好吧,我不明白这是一个玩笑,但我认为您要求在FF之外签入Chrome
$("input:radio").change( function() {
   $("input:radio").removeAttr("checked");
   $(this).prop("checked", true);
});