1
我有这个看似简单的问题。我首先检查一个单选按钮,然后克隆它。原始的单选按钮变为未选中,并且克隆的按钮是正确的。任何人都可以告诉我为什么原始的单选按钮变得没有选中?jQuery的clone()函数弄乱了原始元素的属性
在此先感谢!
<!DOCTYPE HTML>
<html>
<head>
<script src="jquery.js"></script>
</head>
<body>
<div id="ClonedDiv" style="display:none"></div>
<div id="RadioDiv">
<input id="high" type="radio" name="severity" value="High"/>
<input id="medium" type="radio" name="severity" value="Medium"/>
<input id="low" type="radio" name="severity" value="Low"/>
</div>
<script>
$("#RadioDiv #high").prop("checked", true);
alert("RadioDiv's High is: " + ($("#RadioDiv #high")[0].checked ? "CHECKED." : "NOT CHECKED!"));
$("#ClonedDiv").empty();
$("#RadioDiv>input").clone().appendTo("#ClonedDiv"); // I'm merely cloning RadioDiv's inputs into ClonedDiv...
alert("RadioDiv's High is: " + ($("#RadioDiv #high")[0].checked ? "CHECKED." : "NOT CHECKED!"));
alert("ClonedDiv's High is: " + ($("#ClonedDiv #high")[0].checked ? "CHECKED." : "NOT CHECKED!"));
</script>
</body>
</html>
这似乎是正常的行为,它似乎没有涉及jQuery:http://jsfiddle.net/V5rAW/。我想你可能会争论,克隆一个单选按钮是否也应该克隆它的当前状态,但是SO不适合讨论这种事情。 –
如果希望原始按钮保持选中状态,请在追加之前更改'name'属性或从克隆的单选按钮中删除'checked'属性。 –
这就是我觉得有趣的地方。克隆的元素是正确的,但原来不是 - >其状态丢失。这是记录在任何地方?谢谢! – Dunnomuch