[ js ] 使用clone()复制DOM的疑问

楼主: luckynu (黑得发亮)   2017-02-20 20:07:25
先附上程式码 http://codepen.io/luckynu/pen/RKzyRL/?editors=1010
原本是要用clone()将DOM的资料一直堆叠下去
但是出现了一个问题,
只能复制一次,第二次后都不会执行复制的命令,
如果把复制出来的删除,就可以在一次复制,但还是不会超过2各
还请帮忙解答
感谢
作者: Kenqr (function(){})()   2017-02-20 21:34:00
复制的删除后 再按复制一样没反应喔因为clone那行只执行了一次 第一次按是把复制品放到最后第二次按就是把复制品拿出来又放回去了
作者: TETZ (你今天宅了吗?)   2017-02-21 07:54:00
first的结果是整个sel的element你是要复制第一个selectName吗?我用$("div.sel").children().eq(0).clone()然后把这个这个宣告放到click event里就可以了
楼主: luckynu (黑得发亮)   2017-02-21 12:23:00
研究一下。原本的想法是用clone()复制出来的Dom资料存储成全域资料,后续贴上的时候就不用再执行一次复制的动作,并且可以维持资料的初始值。
作者: TETZ (你今天宅了吗?)   2017-02-22 03:49:00
应该是clone这个动作是跟createElement是一样把内存地址存在你assign的变量了所以要create新的元件的话就是要再clone一次$("div.sel").last().after(clonedataaaa.clone())个人解读是这样有错请其他大大开示
作者: serotw (弑龙)   2017-02-22 08:51:00
复制后在复制一次即可https://jsfiddle.net/Lyo84x0n解释一下,你的写法是复制一个物件,将该物件写进去,但你设定的变量还是写进去那个物件,当你删掉该物件就无法在新增是正常的,至于为何只能新增一个而已,因为设定的变量就只是你复制的物件,当你执行新增第二次就只是重复将该物件写进去你要的地方。
楼主: luckynu (黑得发亮)   2017-02-25 16:14:00
感谢楼上几位大大的解说,看来我对于js的基础有待加强。我原本的想法是认为该clone()的行为会直接回传DOM的资料放在变量里面,但结果应该只是存放function而已,这个应该是非严谨程式所造成的误解。感谢大大的解释。
作者: abcggg (小鸡逼逼)   2017-02-28 02:10:00
http://codepen.io/dbjjj/pen/BWNqPr?editors=1010我的话会这样用 参考看看

Links booklink

Contact Us: admin [ a t ] ucptt.com