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