jQuery

jQuery 知识量:7 - 32 - 105

5.4 复制元素><

.clone()方法- 5.4.1 -

.clone()方法的作用就是复制已经存在的元素,从而不必手工创建重复或类似的元素,以提高工作效率。

HTML代码如下:

<p class="p1">p1</p>
<p class="p2">p2</p>
<p class="p3">p3</p>
<p class="p4">p4</p>
<a href="#">wrap</a>

对应的JavaScript代码如下:

$(document).ready(function () {
    $('a').click(function () {
        $('p').wrapAll('<ol></ol>').wrap('<li></li>');
        return false;
    });
    $('a').clone().insertAfter('a');
});

借助包装元素的例子,以上代码中通过.clone()函数复制了链接a,并将复制的新链接插入原链接a的后面,这样页面中就会出现两个链接。

虽然表面上完成了复制,两个链接看上去一模一样,但是分别点击之后就会发现,原链接可以正常工作,而新复制的链接却不起作用,因为默认的.clone()函数只复制DOM元素本身,不复制其绑定的事件。

连同事件一起复制- 5.4.2 -

要使上面例子中复制的新链接起作用,就需要在复制时一同复制其绑定的事件,设定方法非常简单,只需要向.clone()函数传递一个布尔值“true”。

$(document).ready(function () {
    $('a').click(function () {
        $('p').wrapAll('<ol></ol>').wrap('<li></li>');
        return false;
    });
    $('a').clone(true).insertAfter('a');
});

这样,复制的新链接就可以跟原链接一样正常工作了。