Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.04.2015, 18:22
Аспирант
Отправить личное сообщение для SKLNSK Посмотреть профиль Найти все сообщения от SKLNSK
 
Регистрация: 27.02.2015
Сообщений: 66

Копирование DIV и изменение id
Допустим копирую div со всеми вложенными тегами.

$("#"+id_copy).clone().appendTo("#"+id_last);

Только при копировании выходит, что копия полностью идентичная. ID элементов такие же.

Каким образом эффективнее обойти и изменить все id элементов скопированного объекта (div с вложениями)?
Ответить с цитированием
  #2 (permalink)  
Старый 14.04.2015, 18:30
Аспирант
Отправить личное сообщение для SKLNSK Посмотреть профиль Найти все сообщения от SKLNSK
 
Регистрация: 27.02.2015
Сообщений: 66

Если делаю так, то только у верхнего уровня переименовывается id

$("#"+id_copy).clone().appendTo("#"+id_last).
							function()
							{
					$("#"+this.id).attr("id","id"+Math.floor((Math.random()*1000)));
							}
Ответить с цитированием
  #3 (permalink)  
Старый 14.04.2015, 18:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

SKLNSK,
а нельзя не использовать id совсем -- а вычислять по классу и расположению?
Ответить с цитированием
  #4 (permalink)  
Старый 14.04.2015, 18:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Смена всех id у клона
SKLNSK,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $.fn.idPlus = function () {
       $('*',this).add(this).each(function (index, self) {
        self.id && (self.id += Math.floor((Math.random()*1000)))
    })
    return this
}

     $(function(){
      var id_copy = 'first', id_last = 'last';
      $("#"+id_copy).clone().idPlus().appendTo("#"+id_last);
     alert($("#"+id_last).html())
});


  </script>
</head>

<body>
<div id='first'>
<span id='info'>Информация</span>
<div id='main'>
<span id='show'>текст1<b>test</b></span>
</div>
</div>
<div id='last'>

</div>
Ответить с цитированием
  #5 (permalink)  
Старый 14.04.2015, 18:55
Аспирант
Отправить личное сообщение для SKLNSK Посмотреть профиль Найти все сообщения от SKLNSK
 
Регистрация: 27.02.2015
Сообщений: 66

Сообщение от рони Посмотреть сообщение
SKLNSK,
а нельзя не использовать id совсем -- а вычислять по классу и расположению?
я как понимаю без id не получится, если мне в будущем понадобится обращаться к данному объекту, например перемещать или менять цвет и текст
Ответить с цитированием
  #6 (permalink)  
Старый 14.04.2015, 19:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от SKLNSK
например перемещать или менять цвет и текст
всё это можно сделать без id
Ответить с цитированием
  #7 (permalink)  
Старый 14.04.2015, 19:12
Аспирант
Отправить личное сообщение для SKLNSK Посмотреть профиль Найти все сообщения от SKLNSK
 
Регистрация: 27.02.2015
Сообщений: 66

Сообщение от рони Посмотреть сообщение
SKLNSK,
...............

</div>[/html]
Да то что надо, спасибо! Переименовывает (меняет id) даже вложенные элементы.

Не до конца пока разобрался как работает. Вроде как понимаю должна быть рекурсия, но в коде не вижу рекурсии.
Ответить с цитированием
  #8 (permalink)  
Старый 14.04.2015, 19:14
Аспирант
Отправить личное сообщение для SKLNSK Посмотреть профиль Найти все сообщения от SKLNSK
 
Регистрация: 27.02.2015
Сообщений: 66

Сообщение от рони Посмотреть сообщение
всё это можно сделать без id
А как если не секрет? я специально делаю id, чтобы менять свойства выделенного объекта.

Ответить с цитированием
  #9 (permalink)  
Старый 14.04.2015, 19:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от SKLNSK
например перемещать или менять цвет и текст
сохраните ссылку на обьект и даже класс не понадобится в дальнейшем
var divclone = $("#"+id_copy).clone().idPlus().appendTo("#"+id_last);
divclone.height(45)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое изменение цветов div Vladimir93 Общие вопросы Javascript 0 14.11.2014 14:55
Изменение img в div кнопкой Grimmnir Элементы интерфейса 1 15.12.2013 14:37
Реакция на изменение содержимого DIV Rentony Events/DOM/Window 1 29.03.2012 13:57
Изменение содержимого DIV BorisBritva jQuery 2 11.03.2012 12:02
Изменение CCS-свойства DIV по прошествии времени Pug-dog&Elephant Events/DOM/Window 1 31.05.2011 08:10