jQuery:删除内部元素除外的元素

有没有什么办法可以删除内部元素除外:

<div class="gallery"> <a href="images/rep.png" title="rep"> <img src="http://example.com/uploads/rep.png" class="thumbnail" alt="rep" title="rep"> </a> </div> 

 <div class="gallery"> <img src="http://example.com/uploads/rep.png" class="thumbnail" alt="rep" title="rep"> </div> 

我写了这个代码,但不工作:

 $(".gallery").contents().filter(".thumbnail").remove(); 

jQuery有一个unwrap()方法,该方法删除父节点,并将匹配的元素留在原地:

 $(".gallery").contents().filter(".thumbnail").unwrap(); // or (faster) $(".gallery .thumbnail").unwrap(); 
 $(".thumbnail").unwrap() 

http://api.jquery.com/unwrap/

可能是一个更简单的方法,但是:

 $('.gallery').each( function() { var img = $(this).find('img'); $(this).children("a").remove(); $(this).append(img); }); 

尝试

 innerhtml = $("div.gallery .thumbnail").get(); $("div.gallery").html(innerhtml);