Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery将多个元素替换为单个元素_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery将多个元素替换为单个元素

Javascript 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

我正在尝试将两个具有独立ul元素的div替换为一个div,这样我就可以使用这两个元素的li创建一个ul,但我当前的代码创建了独立的ul,这不是我的预期目的,有谁能告诉我如何正确选择这些元素:

我的jQuery

$('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>