亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

元素數據(data)內對象和數組不會被復制,將繼續被克隆元素和原始元素共享。深復制的所有數據,需要手動復制每一個

元素數據(data)內對象和數組不會被復制,將繼續被克隆元素和原始元素共享。深復制的所有數據,需要手動復制每一個


這是什么意思?



正在回答

2 回答

請問下,就樓主的問題,怎么手動復制每一個?既然說手動,有沒有手動的代碼怎么寫?

下面的這個代碼為例:

<div class='div'>慕課網</div>

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

上面的代碼就是給div添加數據data。當你直接使用clone()時,div的data數據是不會被復制的。

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

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


0 回復 有任何疑惑可以回復我~

<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?

0 回復 有任何疑惑可以回復我~
#1

wanwan5856

深復制的所有數據,需要手動復制每一個.是說子元素也要手動復制嗎,每一個的意思不是太理解
2016-07-29 回復 有任何疑惑可以回復我~
#2

694473412 回復 wanwan5856

樓主的例子。 <div class='div'>慕課網</div> $('.div').data('name','imooc'); 如果對div深復制了兩個元素。這兩個元素里面都是沒有data數據的,如果想在這兩個深復制的元素上使用data,就需要手動將data添加到兩個(每一個)元素上。 不知道這樣理解對不對?
2016-07-31 回復 有任何疑惑可以回復我~
#3

694473412 回復 694473412

好像理解錯了。淺復制只是復制元素。深復制不僅僅復制元素,還能共享對象和數組,不過由于元素名稱都是一樣的,所以對象和數組修改修改后,所有源元素和克隆元素都會發生相應改變。如果不想產生聯動效果,就需要對每一個克隆元素再復制一下數據。
2016-07-31 回復 有任何疑惑可以回復我~
#4

wanwan5856 回復 694473412

謝謝。
2016-08-01 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

元素數據(data)內對象和數組不會被復制,將繼續被克隆元素和原始元素共享。深復制的所有數據,需要手動復制每一個

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號