从div到列表的克隆元素
问题描述:
我需要构建简单的标签菜单。问题是,我必须产生somethink这样...从div到列表的克隆元素
<ul id="menu">
<li class="First">First</li>
<li class="Second">Second</li>
<li class="Third">Third</li>
</ul>
......从这样的
<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>
somethink我试图解决这个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'));
});
正如你可以看到有一个大问题 - 重复在IDID :(我不能生成<li>
元素的脚本我脚本,因为菜单加载在header.phtml文件和<div>
内容footer.phtml所以我不知道究竟有多少IDS我需要这就是为什么我不能使用PHP获取菜单项 - 忘记标准的“从数据库中获取”其Zend ...)。也许我需要生成或只是得到一些“数组”?
我会很感激任何帮助!
答
您可以选择所有li
内.someclass
元素,克隆并添加到新创建的ul
,然后添加它来body
。
$(document).ready(function()
{
var ul = $('<ul>', { id: "menu" });
ul.append($('.someclass li').clone());
$("body").append(ul);
});
重复的ID的似乎是至少你的问题,一个列表元素不能是DIV的孩子,所以标记可能不是什么,甚至你认为它是,因为在大多数情况下,浏览器将尝试修复这样的东西。 – adeneo 2014-09-10 17:36:32
谈论重复的ID ......如果问题是“李”的数量可能会有所不同,为什么不设置一个类而不是一个ID? – LcSalazar 2014-09-10 17:44:06