Удалите тег <a>привязки к изображению с помощью jQuery - PullRequest
9 голосов
/ 15 февраля 2012

Я пытаюсь удалить первый тег обтекания изображения ЕСЛИ он существует

   <div class="feature">
        <a>
          <img width="252" height="79" alt="" src="http://localhost:81/site/wp-
          content/uploads/2011/12/home-highlights.jpg" title="home-highlights" 
          class="alignnone size-full wp-image-55">
        </a>
   </div>

Я рассмотрел несколько вариантов, и я предполагаю, что мой подходисправьте здесь:

$(".feature img").closest('a').remove();

Если я воспользуюсь приведенным выше примером, он тоже удалит изображение, что, конечно, не то, что я хочу.

Ответы [ 3 ]

16 голосов
/ 15 февраля 2012

jQuery имеет встроенную функцию: unwrap:

$(".feature a > img").unwrap();

unwrap документы :

Удалить родителей изнабор соответствующих элементов из DOM, оставляя соответствующие элементы на своих местах.

child(>) селектор документы :

Описание: выбираетвсе прямые дочерние элементы элементы, указанные "child" для элементов, указанных "parent".

Спасибо, я не я!
JSFiddle DEMO

5 голосов
/ 15 февраля 2012

Метод развертывания - это тот, который вам нужен:

 $(".feature a").children('img').unwrap();
0 голосов
/ 15 февраля 2012

Вы правы, он удалит элемент и все дочерние элементы. Попробуйте это, хотя, сохраните изображение как переменную и замените HTML-код div:

var myImg = $('.feature img');
$('.feature').html(myImg);
...