0

我有一个包含一些输入框的 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 中不存在。我如何制作这个“棒”?

4

3 回答 3

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);
于 2008-09-16T06:25:57.333 回答
1

谢谢各位。

通过使用原型并更改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);
于 2008-09-17T07:13:48.190 回答
0

Firefox 与 IE:innerHTML 处理

于 2008-09-16T09:40:36.617 回答