Как мне заставить самый последний обновленный элемент формы “вставляться” в Firefox при копировании его контейнера?
-
09-06-2019 - |
Вопрос
У меня есть 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.Как мне сделать так, чтобы это "прилипло"?
Решение
Другие советы
Вы могли бы попробовать 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);
Спасибо, ребята.
Я заставляю вещи работать, используя прототип и меняется document.getElementById(старый ключ) Для $(старый ключ)
<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);
Не связан с StackOverflow