場景是複製#first
在#test
的內部,下面是實現它的2個場景,哪個是實現的最佳方式,爲什麼?克隆對象和硬編碼HTML之間的區別HTML
<div class="first">
<div class="second">1</div>
</div>
<div class="test">
<div>--------------</div>
</div>
JQUERY1:
var cloner = $('.first').clone().prop({
'class': 'changed_first'
});
$('.test').append(cloner)
$('.changed_first > .second').attr('class', 'changed_second');
$('.changed_first > .second').html('2');
上JQUERY1迂迴問題:有在克隆方法中的可能性來更改內部元件的特性?
JQUERY2:
$('.test').append('<div class="changed_first"><div class="changed_second">2</div></div>');
問計「最好的」方法是一個非常模糊的術語,它需要更多的定義,最好的速度,或最短的代碼,或...?我沒有測試過,但我會假設第二種方法是最快的,因爲您只能進行一次DOM訪問。儘管如此,這不是非常容易維護。 –
如果您在插入之前修改克隆,那麼只需修改一次DOM即可,「cloneNode」通常很快 – adeneo
https://jsfiddle.net/adeneo/vodf2ebs/ – adeneo