Рабочий пример здесь: http://jsfiddle.net/rkCKT/
Предполагая эту разметку:
<ul class="parents">
<li id="10">Parent Item 1</li>
<li id="14">Parent Item 2</li>
</ul>
<ul class="children">
<li class="10">Child 1</li>
<li class="10">Child 2</li>
<li class="14">Child X</li>
</ul>
это будет работать:
$(document).ready(function(){
$('ul.children li').each(function(){
probable_parent = $('ul.parents li#' + $(this).attr('class'));
if (probable_parent.length)
{
if (!probable_parent.find('ul').length) probable_parent.append('<ul/>');
$(this).detach().appendTo(probable_parent.find('ul'));
}
});
});
Редактировать
Как только вы добавите какие-либо классы в .children li
s для наглядности, все будет сломано.
По этой и полмиллиона другим причинам, если ваш документ HTML5, я настоятельно рекомендую использовать надлежащие атрибуты для отношений родитель-потомок. В идеале разметка должна выглядеть примерно так:
<ul class="parents">
<li data-itemid="10">Parent Item 1</li>
<li data-itemid="14">Parent Item 2</li>
</ul>
<ul class="children">
<li data-itemid="10">Child 1</li>
<li data-itemid="10">Child 2</li>
<li data-itemid="14">Child X</li>
</ul>