如何在IE11中没有引用的情况下克隆jQuery对象及其子对象

时间:2016-12-23 00:05:13

标签: javascript jquery internet-explorer object internet-explorer-11

我试图克隆一个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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

解决了这个问题。

要在附加空白div后多次追加轮播项目,我需要在每次调用函数时克隆DOM元素。我需要在点击监听器中添加一行:

$allItems = $allItems.clone();