2008-09-16 15 views
0

Ben javascript gibi bir klavyeyle "klonla" bazı giriş kutuları içeren bir dl var:Kapsayıcısını kopyalarken en son güncellenen form öğesini Firefox'ta "sopa" haline nasıl getirebilirim?

var newBox = document.createElement('dl'); 
var sourceBox = document.getElementById(oldkey); 
newBox.innerHTML = sourceBox.innerHTML; 
newBox.id = newkey;   
document.getElementById('boxes').appendChild(columnBox); 

IE'de, sourceBox'taki form kullanıcı tarafından sağlanan değerlerle birlikte newBox'ta çoğaltılır. Firefox'ta, orjinal sourceBox'a girilen son değer newBox'ta mevcut değil. Bunu nasıl yaparım "sopa?"

cevap

0

Firefox vs. IE: innerHTML handling daha hızlı olmalıdır?

+0

olduğu izlenim altındaydım. Bu, bazı şeyleri açıklamaya yardımcı olur - İşlerin yürümesi için bir prototip kısayolu kullandım. –

1

cloneNode yöntemini deneyebilirsiniz. İçeriği kopyalamak daha iyi bir iş çıkartabilir. Ayrıca çoğu durumda

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); 
+0

aldığım prototip kullanarak ve Var değiştirerek çalışmak için bu sourceBox = document.getElementById (eski anahtar); - var sourceBox = $ (oldkey); –

+0

document.getElementById çalışmıyor mu? Çapraz tarayıcı – rpetrich

1

Teşekkürler millet.

Ben prototype kullanarak ve değiştirerek çalışmaya şeyler var document.getElementById (oldkey) için $ (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);