1

我想克隆一個jQuery對象,它的子對象,並且沒有引用。我的理解是,clone()應該完成這一點,但在IE11中,第二次嘗試將其中一個子對象附加到空白的div上時,該子對象不再存在。你可以通過點擊「click me」兩次在我的代碼片段中看到這一點,使用IE11。如何克隆一個jQuery對象及其子對象,但沒有引用IE11

我想我的問題可能是兒童的參考被克隆,所以空白div覆蓋他們,但可能是錯誤的。到目前爲止,clone()在克隆父元素方面表現最佳。我更喜歡使用jQuery而不是getElementsByClassName。我沒有運氣使用$.extend(true, {}, $('.allItems'));

我將不勝感激任何幫助!

window.$allItems = $('.carousel_item').clone(); 
 

 
$('.link').on('click', function(evt) { 
 
    evt.preventDefault(); 
 
    
 
    $('.blue').html('').append('<div id="bills"></div>'); 
 
    $('#bills').append($allItems[0]); 
 
});
.blue { 
 
    background-color: #d0e4f2; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a href="#" class="link">clickme</a> 
 
<div class="blue"> 
 
    <div id="bills"> 
 
    <div class='carousel_item'> 
 
     <img src='http://fillmurray.com/150/200'> 
 
     <div> 
 
     <span>Tomatoes</span> 
 
     </div> 
 
    </div> 
 
    <div class='carousel_item'> 
 
     <img src='http://fillmurray.com/200/200'> 
 
     <div> 
 
     <span>Film</span> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

什麼是你的代碼的點一樣,你有什麼要完成?你想重複carousel_items嗎? – chiliNUT

+0

@chiliNUT此代碼是一個簡化版本。在原來,有更多的圖像和數據divs。點擊一個特定的鏈接將顯示這些div的過濾選擇。 –

+0

如果您在Chrome上執行此相同的代碼段,則會看到所需的行爲:第一次點擊僅篩選「[0]」項,所有後續點擊都會再次顯示該項。 –

回答

0

解決了這個。

爲了在附加一個空格div後多次追加旋轉木馬項目,我需要在每次調用函數時克隆DOM元素。我需要添加一行到點擊收聽:

$allItems = $allItems.clone();