Просмотр полной версии : Копирование DIV и изменение id
Допустим копирую div со всеми вложенными тегами.
$("#"+id_copy).clone().appendTo("#"+id_last);
Только при копировании выходит, что копия полностью идентичная. ID элементов такие же.
Каким образом эффективнее обойти и изменить все id элементов скопированного объекта (div с вложениями)?
Если делаю так, то только у верхнего уровня переименовывается id
$("#"+id_copy).clone().appendTo("#"+id_last).
function()
{
$("#"+this.id).attr("id","id"+Math.floor((Math.random()*1000)));
}
SKLNSK,
а нельзя не использовать 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>
SKLNSK,
а нельзя не использовать id совсем -- а вычислять по классу и расположению?
я как понимаю без id не получится, если мне в будущем понадобится обращаться к данному объекту, например перемещать или менять цвет и текст
например перемещать или менять цвет и текст
всё это можно сделать без id
SKLNSK,
...............
</div>[/HTML]
Да то что надо, спасибо! Переименовывает (меняет id) даже вложенные элементы.
Не до конца пока разобрался как работает. Вроде как понимаю должна быть рекурсия, но в коде не вижу рекурсии.
всё это можно сделать без id
А как если не секрет? я специально делаю id, чтобы менять свойства выделенного объекта.
http://joxi.ru/Dr89KKbiYgQPm6.jpg
например перемещать или менять цвет и текст
сохраните ссылку на обьект и даже класс не понадобится в дальнейшем
var divclone = $("#"+id_copy).clone().idPlus().appendTo("#"+id_last);
divclone.height(45)
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot