2016-03-15 16 views
2

Возможно ли выполнить следующее с помощью jQuery?jQuery разместить тег вокруг других тегов

Это обычный HTML код:

<figure> 
    <a href=""> 
     <img src="" alt="More info" title=""> 
    </a> 
    <figcaption>More info</figcaption> 
</figure> 

Но я хочу, чтобы Jquery это сделать с ним:

<figure> 
    <a href=""> 
     <img src="" alt="More info" title=""> 
     <figcaption>More info</figcaption> 
    </a> 
</figure> 

ответ

3

Вы можете использовать appendTo(), когда у вас есть несколько элементов. .each() можно использовать для итерации. Здесь найдите предыдущий якорь, используя различные методы обхода DOM, затем используйте appendTo().

$('figcaption').each(function() { 
 
    var prevAnchor = $(this).closest('figure').find('a'); //$(this).prev('a'); 
 
    $(this).appendTo(prevAnchor); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<figure> 
 
    <a href=""> 
 
    <img src="" alt="More info" title=""> 
 
    </a> 
 
    <figcaption>More info</figcaption> 
 
</figure> 
 
<figure> 
 
    <a href=""> 
 
    <img src="" alt="More info" title=""> 
 
    </a> 
 
    <figcaption>More info</figcaption> 
 
</figure>

+1

я думаю, что '.figcaption' должен быть только' figcaption' (без точки) –

+0

Это право , он работает сейчас! У меня есть несколько фигур на сайте, и теперь это происходит неправильно. (я получаю в 3 раза больше информации под ним), поэтому я пытался его использовать с каждым (function() {}, но я что-то не так думаю? – Maanstraat

+0

Спасибо за помощь! – Maanstraat

0

TRY: Вы можете использовать .append() метод добавления figcaption внутри тега привязки. см ниже код

$('figure a').append('figure figcaption'); 
0

Да, вы можете использовать что-то вроде: .appendTo();

$(document).ready(function() { 
 
    $("figcaption").appendTo("a"); 
 
});

 
<figure> 
 
    <a href=""> 
 
    <img src="" alt="More info" title=""> 
 
    </a> 
 
    <figcaption>More info</figcaption> 
 
</figure> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>