在jQuery中,如果我們想要復制某個節點,可以使用clone()方法。
語法:
$(A).clone()
說明:
其中clone()方法有一個布爾參數,默認值為false。
$(A).clone()表示僅僅將A節點復制,但不復制A節點所綁定的事件。
$(A).clone(true)表示將A節點復制,並且復制A節點所綁定的事件。
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript" src="../App_js/jquery-1.12.0.min.js"></script> <script type="text/javascript"> $(function () { $("li").click(function () { var txt = $(this).text(); alert(txt); }); $("#btn").click(function () { var $li = $("ul li:eq(3)").clone(true); $($li).appendTo("ul"); }) }) </script> </head> <body> <ul> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> <li>jQuery</li> <li>canvas</li> </ul> <input id="btn" type="button" value="clone復制" /> </body> </html>
在浏覽器預覽效果如下:
當我們點擊“復制”按鈕之後,預覽效果如下:
分析:
在這個例子中,我們為li元素綁定了一個click事件。$("ul li:eq(3)").clone(true)表示復制所選的li元素,並且復制該li元素所綁定的事件。因此,當我們點擊“復制”按鈕之後,復制過去的li元素還保留之前所綁定的click事件。
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript" src="../App_js/jquery-1.12.0.min.js"></script> <script type="text/javascript"> $(function () { $("ul li").click(function () { $(this).clone().appendTo("ul"); }); }) </script> </head> <body> <ul> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> <li>jQuery</li> <li>canvas</li> </ul> </body> </html>
在浏覽器預覽效果如下:
分析:
我們隨便點擊其中一個列表項,該列表項會被復制,並且添加到ul元素內部末尾。
$(this).clone().appendTo("ul")表示選擇當前的li元素($(this)),然後將這個li元素復制(clone()),最後將被復制的li元素添加到ul元素內部末尾(appendTo())。這句代碼使用了jQuery“鏈式操作”,實際上等價於:
var $li = $(this).clone(); $($li).appendTo("ul");
如果“同一個”jQuery對象有N個操作,我們就可以使用像上面這種“鏈式操作”的方式。對於“jQuery鏈式操作”這個技巧,我們會在後面教程會詳細給大家介紹。