我试图克隆一个jQuery对象,它的子对象,没有引用。我的理解是clone()
应该完成这个,但是在IE11中,我第二次尝试将其中一个子对象附加到空白的div周围时,该子对象不再存在。你可以点击"点击我"在我的代码片段中使用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]);
});
&#13;
.blue {
background-color: #d0e4f2;
}
&#13;
<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>
&#13;
答案 0 :(得分:0)
解决了这个问题。
要在附加空白div后多次追加轮播项目,我需要在每次调用函数时克隆DOM元素。我需要在点击监听器中添加一行:
$allItems = $allItems.clone();