首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用菜单创建Bootstrap4导航条,用JSON数据创建子菜单?

如何使用菜单创建Bootstrap4导航条,用JSON数据创建子菜单?
EN

Stack Overflow用户
提问于 2018-11-21 10:27:10
回答 1查看 3.2K关注 0票数 4

我有一个JSON字符串,我想从它创建一个引导4导航条。由于我是JavaScript和jQuery的新手,所以我不知道如何实现这一点。

以下是我的JSON数据:

代码语言:javascript
运行
复制
var data = {
    "Setup":
        [
            {  "type": "Submenu-1" },

            {  "type": "submenu-2" }
        ],
    "Report":
        [
            {  "type": "subreport-1" },

            {  "type": "subreport-2" }
             ],
    "logout":
        []

};

我想要个肚脐

代码语言:javascript
运行
复制
<link rel="stylesheet"
	href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css">

<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
	<button class="navbar-toggler" type="button" data-toggle="collapse"
		data-target="#navbarSupportedContent"
		aria-controls="navbarSupportedContent" aria-expanded="false"
		aria-label="Toggle navigation">
		<span class="navbar-toggler-icon"></span>
	</button>
	<div class="collapse navbar-collapse" id="navbarSupportedContent">
		<ul class="navbar-nav mr-auto">
			<!-- Links -->
			<!-- DropDown -->

			<!-- setup -->

			<li class="nav-item dropdown">

					<a class="nav-link dropdown-toggle" href="" id="navbardrop"
						data-toggle="dropdown"> Setup </a>
				
				
				<div id="drop" class="dropdown-menu">
					
						<a class="dropdown-item" href="#"> submenu-1</a>
						<a class="dropdown-item" href="#"> submenu-2</a>
				
				</div></li>
			
			<li class="nav-item dropdown">
					<a class="nav-link dropdown-toggle" href="#" id="navbardrop"
						data-toggle="dropdown"> Report </a>
				
				<div class="dropdown-menu">
				
					
						<a class="dropdown-item" href="">subreport-1</a>
						<a class="dropdown-item" href="">subreport-2</a>
				

				</div></li>
			

			<li class="nav-item">
			  
				<a class="nav-link" href="">Logout</a>
			 </li>
		</ul>
	</div>
	</nav>
  
  <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
	<script
		src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
	<script
		src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js"></script>

我不知道如何从JavaScript或jQuery中实现这一点--我如何才能做到这一点?

我的JSON数据是动态的;它可以从3个菜单到6-7菜单不等,子菜单也是如此。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-21 12:04:09

我希望它将有助于从Json数据生成动态导航栏。

代码语言:javascript
运行
复制
var data = {
    "Setup":
        [
            {  "type": "Submenu-1", "link" : "https://www.google.com" },
            {  "type": "submenu-2", "link" : "https://www.google.com" }
        ],
    "Report":
        [
            {  "type": "subreport-1", "link" : "https://www.google.com" },
            {  "type": "subreport-2", "link" : "https://www.google.com" }
        ],
    "logout":
        []

};

$(document).ready(function() {
	
	for (var item in data) { 
    	var _menu = "";
        var _submenuData = data[item];
        if(_submenuData.length > 0) {
        	var _submenu = "";
            
        	for(var i = 0; i < _submenuData.length; i++) {
            	_submenu += "<a class='dropdown-item' href='" + _submenuData[i]["link"] + "'>" + _submenuData[i]["type"] + "</a>";
        }
        
        _menu = "<li class='nav-item dropdown'>"
        		+ "<a class='nav-link dropdown-toggle' href='' id='navbardrop' data-toggle='dropdown'> " + item + " </a>"
                + "<div id='drop' class='dropdown-menu'>"
                + _submenu
				+ "</div>"
                + "</li>";
        }
        else {
        	_menu = "<li class='nav-item'>"
        		+ "<a class='nav-link' href=''> " + item + " </a>"
                + "</li>";
        }
        
        $("#navbarId").append(_menu);
    }

});
代码语言:javascript
运行
复制
<link rel="stylesheet"
	href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
	<script
		src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
	<script
		src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js"></script>
    
    <nav class="navbar navbar-expand-sm bg-dark navbar-dark">
	<button class="navbar-toggler" type="button" data-toggle="collapse"
		data-target="#navbarSupportedContent"
		aria-controls="navbarSupportedContent" aria-expanded="false"
		aria-label="Toggle navigation">
		<span class="navbar-toggler-icon"></span>
	</button>
	<div class="collapse navbar-collapse" id="navbarSupportedContent">
		<ul id="navbarId" class="navbar-nav mr-auto">
		</ul>
	</div>
	</nav>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53410013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档