jQuery: удалить элемент, кроме внутреннего - PullRequest
3 голосов
/ 31 октября 2011

Есть ли способ удалить элемент, кроме внутреннего элемента:

<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();

Ответы [ 4 ]

10 голосов
/ 31 октября 2011

jQuery имеет метод unwrap(), который удаляет родительский узел и оставляет соответствующий элемент на месте:

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

// or (faster)
$(".gallery .thumbnail").unwrap();
2 голосов
/ 31 октября 2011
$(".thumbnail").unwrap()

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

0 голосов
/ 31 октября 2011

1001 * попробовать *

innerhtml = $("div.gallery .thumbnail").get();
$("div.gallery").html(innerhtml);
0 голосов
/ 31 октября 2011

Может быть проще, но:

$('.gallery').each( function() {

    var img = $(this).find('img');
    $(this).children("a").remove();

    $(this).append(img);

});
...