[ 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