$("#img_id").clone(true).appendTo($('#clone1')).attr("id", "clone");
Вот такой код нормально работает
Теперь я пытаюсь изменить id всех элементов DOM при помощи такого алгоритма
$('#clone').children().each(function(){
      $('#clone').append(this.id+='--->');
    });
Но изменяется ID только второго элемента в клоне
Фактически в результате клонирования из такого DOM
<div id="img_id">
<div id="ne">
    <img id="main_img" src="" width="350" height="300" />
    <div id="wrapper">
            <div id="able">
        </div>
        </div>
    </div>
Получается такой
<div id="clone">
<div id="clone--->">
<div id="ne">
    <img id="main_img" src="" width="350" height="300" />
    <div id="wrapper">
            <div id="able">
        </div>
        </div>
    </div>
</div>
То есть у клона появляется новый <div id="clone">, который становится оберткой прежнего DOM
Также изменяется ID второго элемента на id="clone--->"
Но почему не изменяются все ID ?
И я предполагаю, что при восстановлении оригинала оберточный DIV с id="clone" станет лишним