2014-09-10 1 views
1

Мне нужно создать меню простых вкладок. Проблема заключается в том, что я должен генерировать somethink подобное ...Клонировать элемент из div в список

<ul id="menu"> 
    <li class="First">First</li> 
    <li class="Second">Second</li> 
    <li class="Third">Third</li> 
</ul> 

... от somethink как этот

<div class="someclass"> 
    <li class="First">First</li> 
    <p>text</p> 
    </div> 
<div class="someclass"> 
    <li class="Second">Second</li> 
    <p>text</p> 
    </div> 
<div class="someclass"> 
    <li class="Third">Third</li> 
    <p>text</p> 
    </div> 

Я пытался решить эту broblem с моим чистым знанием в Js ...

<div id="PutAfter"> 
<ul id="menu"> 
    <li id="m">First</li> 
    <li id="m">Second</li> 
    <li id="m">Third</li> 
</ul> 
    <div style="display:none"> 
<div class="someclass"> 
    <li id="m">4</li> 
    <p>text</p> 
    </div> 
<div class="someclass"> 
    <li id="m">5</li> 
    <p>text</p> 
    </div> 
    <div class="someclass"> 
    <li id="m">6</li> 
    <p>text</p> 
    </div> 
    </div> 

и простой скрипт

$(document).ready(function(){ 
    $('#4').clone().insertAfter($('#m3')); 
    $('#5').clone().insertAfter($('#4')); 
    $('#6').clone().insertAfter($('#5')); 
}); 

Как вы видите, существует большая проблема - дубликаты в ids :(Я не могу генерировать идентификаторы для <li> элементов i-скрипта, потому что загрузка меню в файле header.phtml и <div> в footer.phtml, поэтому я точно не знаю, сколько идентификаторов мне нужно (вот почему я не могу получить пункты меню, используя php - забудьте о стандартном «get from db» его Zend ...). Может быть, мне нужно сгенерировать или просто получить некоторый «массив»?

Я был бы очень благодарен за помощь!

+1

Дублированных идентификаторы, кажется, наименее ваши проблемы, список элементы не могут быть ребенком в DIV, так что разметка, вероятно, даже не то, что вы думаете, что это, как браузер в большинстве случаев попытается исправить такие вещи. – adeneo

+0

Говоря о дублированных идентификаторах ... Если проблема в том, что количество 'li' может отличаться, почему бы не установить класс вместо id? – LcSalazar

ответ

0

Вы можете выбрать все li внутри .someclass элементов, клонировать и добавить вновь созданный ul, добавляя потом в body.

Fiddle.

$(document).ready(function() 
{ 
    var ul = $('<ul>', { id: "menu" }); 
    ul.append($('.someclass li').clone()); 
    $("body").append(ul); 
});