【问题标题】:Add sub menu items dynamically using jquery?使用jquery动态添加子菜单项?
【发布时间】:2019-12-12 07:06:03
【问题描述】:

$(function(){

     $('[data-toggle="tooltip"]').tooltip();

     $(".side-nav .collapse").on("hide.bs.collapse", function() 
     {   
      $(this).prev().find(".fa").eq(1).removeClass("fa-angle-right").addClass("fa-angle-down");
     });

      $('.side-nav .collapse').on("show.bs.collapse", function() 
      {                                    
        $(this).prev().find(".fa").eq(1).removeClass("fa-angle-down").addClass("fa-angle-right");        
      });

})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />

<div class="collapse navbar-collapse navbar-ex1-collapse">
    <ul class="nav navbar-nav side-nav">
        <li>
            <a href="investigaciones/favoritas"><i class="fa fa-fw fa-user-plus"></i>Dashboard</a>
        </li>
        <li>
            <a href="#" data-toggle="collapse" data-target="#submenu-1">
                <i class="fa fa-fw fa-search"></i> Hosts <i class="fa fa-fw fa-angle-down pull-right"></i>
            </a>
            <ul id="submenu-1" class="collapse">
                <li><a href="#"><i class="fa fa-angle-double-right"></i> SUBMENU 1.1</a></li>
                <li><a href="#"><i class="fa fa-angle-double-right"></i> SUBMENU 1.2</a></li>
                <li><a href="#"><i class="fa fa-angle-double-right"></i> SUBMENU 1.3</a></li>
            </ul>
        </li>
    </ul>
</div>

我有一个侧面导航栏,其中的菜单包含子菜单项。当使用 jquery 单击菜单项时,我必须动态添加子菜单项,但这对我不起作用。

我想使用 jquery 来点击菜单,比如 onclick 函数,还想动态添加列表项。 我有 array=[submenu1, submenu2, submenu3] 并想使用 jquery 将其附加到我的菜单子项中。

【问题讨论】:

  • 展示你的 jQuery,以便我们创建一个示例并进行测试。
  • 看看这个如果它可能有帮助,我想使用这个 jquery
  • 请在sn-p中添加您的代码。
  • @Rahul 你在使用引导程序吗?
  • 是的,我正在使用引导程序 @Revti

标签: jquery


【解决方案1】:

append() 用于您的 &lt;ul&gt; 。 它可能看起来像:

array.forEach(function(item, index){
   let newSubMenu = document.createElement("li");
   let textContent = document.createTextNode(item);
   newSubMenu.appendChild(textContent);
   $('#submenu-1').append(newSubMenu );
});

或者您可以选择将 HTML 模板存储为字符串并附加

array.forEach(function(item, index){
   let newSubMenu = `<li><a href="#"><i class="fa fa-angle-double-right"></i> ${item}</a></li>`
   $('#submenu-1').append(newSubMenu );
});

【讨论】:

  • 那么li下的课呢?
  • 如何添加?
  • newSubMenu.classList.add("className");
  • 也许我们可以采用 jQuery 的方式来做这件事。将您的 HTML 字符串存储为 let htmlDom = "&lt;li&gt;&lt;a href='#'&gt;&lt;i class='fa fa-angle-double-right'&gt;&lt;/i&gt; "+ item + "&lt;/a&gt;&lt;/li&gt;" 并简单地执行 $('submenu).append(htmlDom)
  • @AravindAnil 你能把你的代码放在sn-p中吗?
猜你喜欢
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-20
相关资源
最近更新 更多