Javascript jQuery将多个元素替换为单个元素
我正在尝试将两个具有独立ul元素的div替换为一个div,这样我就可以使用这两个元素的li创建一个ul,但我当前的代码创建了独立的ul,这不是我的预期目的,有谁能告诉我如何正确选择这些元素: 我的jQueryJavascript jQuery将多个元素替换为单个元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试将两个具有独立ul元素的div替换为一个div,这样我就可以使用这两个元素的li创建一个ul,但我当前的代码创建了独立的ul,这不是我的预期目的,有谁能告诉我如何正确选择这些元素: 我的jQuery $('nav div.moduletable_gfbb_navigationbar, nav div.moduletable_menu_navigationbar').replaceWith(function(){ var html = '<ul class="nav
$('nav div.moduletable_gfbb_navigationbar, nav div.moduletable_menu_navigationbar').replaceWith(function(){
var html = '<ul class="nav navbar-nav navbar-right">';
$(' ul',this).each(function(){
html += $(this).html();
});
html+='</ul>';
return html;
});
$('nav div.moduletable_gfbb_导航栏,nav div.moduletable_菜单_导航栏')。替换为(函数(){
var html=';
$('ul',this).each(函数(){
html+=$(this.html();
});
html+='
';
返回html;
});
我的HTML
<div class="moduletable_menu_navigationbar">
<ul class="menu">
<li id="current" class="active item8"><a href="http://localhost/html/"><span>Banca Personas</span></a></li>
<li class="item9"><a href="/html/banca-pyme.html"><span>Banca Pyme</span></a></li>
<li class="item10"><a href="/html/banca-empresas.html"><span>Banca Empresas</span></a></li>
<li class="item602"><a href="/html/bankard.html"><span>Bankard</span></a></li>
</ul>
</div>
<div class="moduletable_gfbb_navigationbar">
<ul class="menu">
<li class="item12"><a href="/informacion-institucional.html"><span>Informacion Institucional</span></a></li>
</ul>
</div>
我得到的输出(不是我想要的)
我想要的是一个“ul”,我知道我可以重新编码,但我正在尝试使用更少的代码。$('.moduletable_menu_navigationbar.menu')。追加($('.moduletable_gfbb_navigationbar.menu').html();
$('.moduletable_gfbb_navigationbar')。删除()代码>
这就是你要找的 您的示例不包括可能是问题主要原因的
标记,但为了生成更可读的代码,我会这样做
我使用数组作为选择器,因为它有助于可读性和可维护性。它还允许您通过仅使用第一个选择器(不管是什么)轻松地在第一个菜单之前插入新列表
基本上,我从选择器中选择所有的
元素,并将它们移动到新列表中。然后在第一个列表div之前插入新列表。然后删除旧列表
var选择器=[
“导航分区模块表”\u gfbb\u导航栏”,
“导航分区模块表菜单导航栏”
],selectorText=selectors.join(',');
var newList=$('”);
$('li',selectorText.each(function(){newList.append(this);});
$(选择器[0])。在(新列表)之前;
$(selectorText.remove()代码>
是的,我需要添加.unwrap()以在最后删除父div,但它按预期工作,我不知道如何正确处理它。我刚刚回顾了这个答案,Rama Rao answer很好地解决了我的问题,但这个答案可以应用于组合相同类型的许多DOM元素,很好的方法
<ul class="nav navbar-nav navbar-right">
<li class="item12"><a href="/informacion-institucional.html"><span>Informacion Institucional</span></a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li id="current" class="active item8"><a href="http://localhost/html/"><span>Banca Personas</span></a></li>
<li class="item9"><a href="/html/banca-pyme.html"><span>Banca Pyme</span></a></li>
<li class="item10"><a href="/html/banca-empresas.html"><span>Banca Empresas</span></a></li>
<li class="item602"><a href="/html/bankard.html"><span>Bankard</span></a></li>
</ul>