Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2013, 19:53
Интересующийся
Отправить личное сообщение для Jmunb Посмотреть профиль Найти все сообщения от Jmunb
 
Регистрация: 26.11.2011
Сообщений: 10

Клонирование DOM объекта или как вставить один div много раз
Доброго времени суток.

Столкнулся с такой проблемой, есть некий код который призван удвоить количество дивов на странице:
var divLength = document.getElementsByTagName('div').length;
var bodyLink = document.getElementsByTagName('body')[0];
for(var i=0; i < divLength; i++) {
    bodyLink.appendChild(document.createElement("div"));
}

Но при этом в цикле DIV элемент создается каждый раз, и это меня не устраивает, хотел закешировать его:
var divLength = document.getElementsByTagName('div').length;
var bodyLink = document.getElementsByTagName('body')[0];
var mayDiv = document.createElement("div");
for(var i=0; i < divLength; i++) {
    bodyLink.appendChild(mayDiv );
}

Но тогда объект передается по ссылке и на деле вставляется только 1 элемент.
Пробовал прибегнуть к замыканиям, но результат был тем же, вставляется только 1 элемент.

Возможно ли при помощи каких либо техник создавать объект единожды, и вставлять его нужное количество раз?
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2013, 19:56
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Так и дожно работать, когда элемент вствляется в новое место, он удаляется из предыдущего.
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2013, 20:12
Интересующийся
Отправить личное сообщение для Jmunb Посмотреть профиль Найти все сообщения от Jmunb
 
Регистрация: 26.11.2011
Сообщений: 10

Я это понимаю, поэтому и спрашиваю есть ли какое либо решение данной проблемы, или нет? Так как создавать каждый раз новый объект накладно.
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2013, 20:24
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Jmunb
Возможно ли при помощи каких либо техник создавать объект единожды, и вставлять его нужное количество раз?
Вы понимаете что это исключающие друг друга требования?
Можете с cloneNode поиграться. Но и при этом - объект будет создаваться вновь и вновь.
Ответить с цитированием
  #5 (permalink)  
Старый 03.04.2013, 20:50
Интересующийся
Отправить личное сообщение для Jmunb Посмотреть профиль Найти все сообщения от Jmunb
 
Регистрация: 26.11.2011
Сообщений: 10

То есть способа обратится на прямую к объекту в js нет?
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2013, 21:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Jmunb
То есть способа обратится на прямую к объекту в js нет?
А это вобще как понимать? JavaScript для этого и создавался вобще-то ))
Ответить с цитированием
  #7 (permalink)  
Старый 04.04.2013, 01:51
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Сообщение от Jmunb Посмотреть сообщение
То есть способа обратится на прямую к объекту в js нет?
Есть, имеено потому и пропадает див из старого места попадая на новый.)
2 дива - это уже 2 разных объекта, как ни крути.
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 04.04.2013, 14:58
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

var divLength = document.getElementsByTagName('div').length;
var bodyLink = document.getElementsByTagName('body')[0];
var mayDiv = document.createElement("div");
for(var i=0; i < divLength; i++) {
    bodyLink.appendChild( mayDiv.cloneNode( true ) );
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевод в число или как прибавить один anton_vek Общие вопросы Javascript 3 26.08.2010 13:07
Как вставить текст в Div ? Arfey Общие вопросы Javascript 5 20.08.2010 14:19
Как заставить событие сработать один раз GRean Javascript под браузер 4 07.06.2010 00:29
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
Чтоб ссылка появлялась один раз для каждого пользователя (по IP или Cookies) Sequoia Общие вопросы Javascript 2 28.01.2010 19:16