2013-05-17 3 views
2

У меня есть несколько элементов на странице, которые содержат заголовок и изображение, которое я хотел бы изменить. Например, переключая порядок IMG с h2:Переключение порядка нескольких наборов элементов с помощью jQuery

<section> 
    <img> 
    <h2></h2> 
</section> 

У меня есть несколько экземпляров раздела, поэтому старались повторять каждый в свою очередь, как:

$("section h2").each(function(){ 
    $(this).before($(this).prev('img'));  
}); 

, но это не имея какой-либо эффект. Может ли кто-нибудь предположить, что я делаю неправильно?

+1

вы можете оставить скрипку? Скорее всего, вы не 'remove()' старые, как только вы добавили новые –

+1

из docs 'Вставляйте содержимое, заданное параметром, перед каждым элементом в наборе согласованных элементов.' поэтому вы вставляете img до этого - вот почему он не меняет –

+0

Спасибо @JoeCoderGuy, но ответ VisioN ниже решил. Моя скрипка в http://jsfiddle.net/DhCDp/ для всех, кто интересуется. –

ответ

3

insertBefore() будет работать отлично:

$("section h2").each(function() { 
    $(this).insertBefore($(this).prev("img")); 
}); 

DEMO:http://jsfiddle.net/kqLeD/

+0

Отлично, спасибо. Моя путаница между .before() и .insertBefore() –

Смежные вопросы