带有html()的jquery clone()不是函数

时间:2017-02-10 17:52:12

标签: jquery html clone

创建我自己的照片库我想将小图片加载到更大的div以放大它。首先,我使用html(),但它删除主(小)照片,或什么都不做(我发现几个解决方案如何使用html()而不是降低主要数据,但没有tchem工作)。所以我尝试使用clone()。但后来我尝试将它与html()结合起来,它给我一个错误:this.clone不是一个函数。我再次尝试找到解决方案,但没有任何效果。 这是我尝试使用的解决方案和效果的代码:

<script>
var GallObj={
    img:<?php echo json_encode($GetImg->jsonData); ?>,
    imgIndex:new Number, //storage data about index of enlaging picture
}

var showAllImg = $.map(GallObj.img, function(val, i) {
    return "<img src='gallery/"+val+"' class='smallimg'>";
});

$("#gallCont").html(showAllImg.join(""));

$('.smallimg').click(function(){
    GallObj.imgIndex=$('.smallimg').index(this);

   //it work, but I need change it and use html() because it doesn't change one loaded photo to new loaded photo of course:
   $(this).clone().appendTo($('#picture')); 

   // this two removed clicked oryginalny picture and I don't want it:
   $('#picture').html(this)
   $('#picture').html(this).html(); 

   //this.clone is not a function error:
   elm=this.clone();
   $('#picture').html(elm);

   //this.clone is not a function error:       
   $('#picture').html(this.clone());

   //do nothing:
   $('#picture').clone().html(this);

   //do nothing:
   var value=$(this).html();
   $("#picture").html(value);


   $('#mask, #fixed, #picture, #close').css('display','block');
   $('#mask').animate({'width':'100%','height':screen.height +100, opacity:'0.5'});
   $('#picture').animate({width:'900'});
   $('html, body').animate({scrollTop:0}, 1500);
})
</script>

请帮助我并解释我做错了什么......

1 个答案:

答案 0 :(得分:6)

this.clone()中,.clone()是一个jQuery函数,但您尝试在this上使用它,这是纯JavaScript。

请尝试$(this).clone()