2013-11-23 6 views
0

У меня есть тема блога, которая производит следующий вывод для своей страницы индекса блога. Для каждого сообщения (10 на страницу) он также выполняет итерацию над связанным списком комментариев (n за сообщение). Внутри каждого комментария есть элемент h4, который предшествует div.commentcontent.Как перебрать по вложенному UL, чтобы переместить h4 сверху div на под ним?

<ul id="postlist"> 
    <li class="post"> 
     <h2>Post Title</h2> 
     <p>Here is some post content</p> 
     <ul class="commentlist"> 
      <li class="comment"> 
       <h4>Comment Author Name <span class="meta">Date</span></h4> 
       <div class="commentcontent">Here is the comment text</div> 
      </li> 
     </ul> 
    </li> 
</ul> 

При загрузке страницы мне нужно переместить h4 в каждом комментарии, чтобы он соответствовал div.

Я прочитал об отладке и appendTo, и я попытался использовать этот фрагмент для повторения каждого сообщения, а затем каждого комментария в сообщении, но это не работает.

$('#postlist li').each(function() { 
    $('.comment').each(function() { 
     var commentMeta = $('.comment').children('h4').detach(); 
     commentMeta.appendTo('.comment').children('.commentcontent'); 
    }); 
}); 

Дополнительно: У меня также есть обработки AJAX комментарий проводка так, как новые комментарии, они должны иметь h4 приложено, а также, даже то страницу не обновляется.

Дополнительный 2: Можно ли обернуть теги span вокруг имени автора комментария?

Любая помощь будет высоко оценена. Благодарю.

ответ

0
$('#postlist li').each(function() { 
$('.comment').each(function() { 
    var commentMeta = $(this).children('h4').detach(); 
    commentMeta.appendTo($(this)) 
}); 
}); 

DEMO

EDIT: - для АЯКС комментария размещения вы можете создать функцию и вызвать, что в случае успеха/сделано метода АЯКС

function swap() 
{ 
    $('#postlist li').each(function() { 

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

     if($(this).children(':first-child').prop('tagName')=="H4") 
     { 
     var commentMeta = $(this).children('h4').detach(); 
     commentMeta.appendTo($(this)) 
     } 
    }); 

    }); 
} 

$.ajax(
{ 
    url: //, 
    data: //, 
    success: function() 
    { 
    swap(); 
    } 
}) 
+0

что сделал это :) Спасибо. Если у вас есть ответы на любые дополнительные вопросы, дайте мне знать. Приветствия. – Suzanne

+0

@Suzanne - это не делает то, что вы просили в своем вопросе, добавляет H4 в элемент '.commentcontent', и вы явно просили H4« следовать за DIV », а не быть внутри него? – adeneo

+0

@Suzanne oops забыл, что при редактировании. Изменено 'appendTo ($ (this) .children ('. Commentcontent'))' to 'appendTo ($ (this))' – UDB