问答详情
源自:5-1 DOM拷贝clone()

元素数据(data)内对象和数组不会被复制,将继续被克隆元素和原始元素共享。深复制的所有数据,需要手动复制每一个

元素数据(data)内对象和数组不会被复制,将继续被克隆元素和原始元素共享。深复制的所有数据,需要手动复制每一个


这是什么意思?



提问者:Sunshine3721995 2016-07-28 16:08

个回答

  • 慕虎0938118
    2019-07-22 09:32:35

    请问下,就楼主的问题,怎么手动复制每一个?既然说手动,有没有手动的代码怎么写?

    下面的这个代码为例:

    <div class='div'>慕课网</div>

    $('.div').data('name','imooc');

    上面的代码就是给div添加数据data。当你直接使用clone()时,div的data数据是不会被复制的。

    var divcopy=$('.div').clone();

    console.log(divcopy.name);//返回的是undefined;


  • YGJ
    2016-07-28 17:21:50

    <div class='div'>慕课网</div>

    $('.div').data('name','imooc');

    上面的代码就是给div添加数据data。当你直接使用clone()时,div的data数据是不会被复制的。

    var divcopy=$('.div').clone();

    console.log(divcopy.name);//返回的是undefined;

    只有使用clone(true)时;div中的data数据才会被复制。

    简单理解就是clone(true)复制的所有数据,无法使用clone()获取,需要手动添加进去。

    understand?