我有一个包含一些输入框的dl,我用一些JavaScript“克隆”如:
var newBox = document.createElement('dl');
var sourceBox = document.getElementById(oldkey);
newBox.innerHTML = sourceBox.innerHTML;
newBox.id = newkey;
document.getElementById('boxes').appendChild(columnBox);
在IE中,sourceBox中的表单在newBox中重复,并带有用户提供的值。在Firefox中,在原始sourceBox中输入的最后一个值在newBox中不存在。我怎么做这个“坚持?”
答案 0 :(得分:1)
您可以尝试使用cloneNode
方法。它可以更好地复制内容。在大多数情况下它也应该更快
var newBox;
var sourceBox = document.getElementById(oldkey);
if (sourceBox.cloneNode)
newBox = sourceBox.cloneNode(true);
else {
newBox = document.createElement(sourceBox.tagName);
newBox.innerHTML = sourceBox.innerHTML;
}
newBox.id = newkey;
document.getElementById('boxes').appendChild(newBox);
答案 1 :(得分:1)
谢谢大家。
我使用 prototype 并更改 document.getElementById(oldkey)让事情变得有效 到 $(oldkey)
<script src="j/prototype.js" type="text/javascript"></script>
var newBox;
var sourceBox = $(oldkey);
if (sourceBox.cloneNode)
newBox = sourceBox.cloneNode(true);
else {
newBox = document.createElement(sourceBox.tagName);
newBox.innerHTML = sourceBox.innerHTML;
}
newBox.id = newkey;
document.getElementById('boxes').appendChild(newBox);
答案 2 :(得分:0)