How to create Bootstrap4 navbar with menus and sub menus with json data











up vote
2
down vote

favorite












I have a json from which I want to create a Bootstrap 4 navbar. As i am new to JavaScript and Jquery I am not getting an Idea of how i can achieve that.



here is my json data:



var data = {
"Setup":
[
{ "type": "Submenu-1" },

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

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


};


i want to have a navbar like






<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>





I don't know how i can achieve this from javascript or Jquery so can any one out there help me or advice me how can achieve this?



and my JSON data is Dynamic it can vary from 3 menus to 6-7 same as for submenus also.



so at the end i want to create a dynamic navbar.










share|improve this question




















  • 1




    What have you tried so far?
    – adiga
    2 days ago










  • @adiga i have tried this " for (var i in data) { $('.nav-tabs').append('<li role="presentation" class=""><a href="#' + i + '" aria-controls="' + i + '" role="tab" data-toggle="tab">' + i + '</a></li>'); var div = '<div role="tabpanel" class="tab-pane" id="' + i + '">'; for (var j = 0; j < data[i].length; j++) { var obj = data[i][j]; div += '<div id="' + obj.id + '">' + obj.type + '</div>'; } $('.tab-content').append(div); }" i ahve found this one from google only but its only working for ul tag and not for nav
    – dheeraj kumar
    2 days ago










  • Please see this example: jsfiddle.net/saslam/vepeLmm0
    – Farhad Mortezapour
    2 days ago










  • @FarhadMortezapour its not talkin bootstrap cl;asses and not even form the toggle button when used for small device
    – manish thakur
    2 days ago










  • @FarhadMortezapour that was not helpfull at all ;(
    – manish thakur
    2 days ago















up vote
2
down vote

favorite












I have a json from which I want to create a Bootstrap 4 navbar. As i am new to JavaScript and Jquery I am not getting an Idea of how i can achieve that.



here is my json data:



var data = {
"Setup":
[
{ "type": "Submenu-1" },

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

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


};


i want to have a navbar like






<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>





I don't know how i can achieve this from javascript or Jquery so can any one out there help me or advice me how can achieve this?



and my JSON data is Dynamic it can vary from 3 menus to 6-7 same as for submenus also.



so at the end i want to create a dynamic navbar.










share|improve this question




















  • 1




    What have you tried so far?
    – adiga
    2 days ago










  • @adiga i have tried this " for (var i in data) { $('.nav-tabs').append('<li role="presentation" class=""><a href="#' + i + '" aria-controls="' + i + '" role="tab" data-toggle="tab">' + i + '</a></li>'); var div = '<div role="tabpanel" class="tab-pane" id="' + i + '">'; for (var j = 0; j < data[i].length; j++) { var obj = data[i][j]; div += '<div id="' + obj.id + '">' + obj.type + '</div>'; } $('.tab-content').append(div); }" i ahve found this one from google only but its only working for ul tag and not for nav
    – dheeraj kumar
    2 days ago










  • Please see this example: jsfiddle.net/saslam/vepeLmm0
    – Farhad Mortezapour
    2 days ago










  • @FarhadMortezapour its not talkin bootstrap cl;asses and not even form the toggle button when used for small device
    – manish thakur
    2 days ago










  • @FarhadMortezapour that was not helpfull at all ;(
    – manish thakur
    2 days ago













up vote
2
down vote

favorite









up vote
2
down vote

favorite











I have a json from which I want to create a Bootstrap 4 navbar. As i am new to JavaScript and Jquery I am not getting an Idea of how i can achieve that.



here is my json data:



var data = {
"Setup":
[
{ "type": "Submenu-1" },

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

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


};


i want to have a navbar like






<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>





I don't know how i can achieve this from javascript or Jquery so can any one out there help me or advice me how can achieve this?



and my JSON data is Dynamic it can vary from 3 menus to 6-7 same as for submenus also.



so at the end i want to create a dynamic navbar.










share|improve this question















I have a json from which I want to create a Bootstrap 4 navbar. As i am new to JavaScript and Jquery I am not getting an Idea of how i can achieve that.



here is my json data:



var data = {
"Setup":
[
{ "type": "Submenu-1" },

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

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


};


i want to have a navbar like






<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>





I don't know how i can achieve this from javascript or Jquery so can any one out there help me or advice me how can achieve this?



and my JSON data is Dynamic it can vary from 3 menus to 6-7 same as for submenus also.



so at the end i want to create a dynamic navbar.






<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>





<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 html bootstrap-4






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 2 days ago

























asked 2 days ago









manish thakur

9110




9110








  • 1




    What have you tried so far?
    – adiga
    2 days ago










  • @adiga i have tried this " for (var i in data) { $('.nav-tabs').append('<li role="presentation" class=""><a href="#' + i + '" aria-controls="' + i + '" role="tab" data-toggle="tab">' + i + '</a></li>'); var div = '<div role="tabpanel" class="tab-pane" id="' + i + '">'; for (var j = 0; j < data[i].length; j++) { var obj = data[i][j]; div += '<div id="' + obj.id + '">' + obj.type + '</div>'; } $('.tab-content').append(div); }" i ahve found this one from google only but its only working for ul tag and not for nav
    – dheeraj kumar
    2 days ago










  • Please see this example: jsfiddle.net/saslam/vepeLmm0
    – Farhad Mortezapour
    2 days ago










  • @FarhadMortezapour its not talkin bootstrap cl;asses and not even form the toggle button when used for small device
    – manish thakur
    2 days ago










  • @FarhadMortezapour that was not helpfull at all ;(
    – manish thakur
    2 days ago














  • 1




    What have you tried so far?
    – adiga
    2 days ago










  • @adiga i have tried this " for (var i in data) { $('.nav-tabs').append('<li role="presentation" class=""><a href="#' + i + '" aria-controls="' + i + '" role="tab" data-toggle="tab">' + i + '</a></li>'); var div = '<div role="tabpanel" class="tab-pane" id="' + i + '">'; for (var j = 0; j < data[i].length; j++) { var obj = data[i][j]; div += '<div id="' + obj.id + '">' + obj.type + '</div>'; } $('.tab-content').append(div); }" i ahve found this one from google only but its only working for ul tag and not for nav
    – dheeraj kumar
    2 days ago










  • Please see this example: jsfiddle.net/saslam/vepeLmm0
    – Farhad Mortezapour
    2 days ago










  • @FarhadMortezapour its not talkin bootstrap cl;asses and not even form the toggle button when used for small device
    – manish thakur
    2 days ago










  • @FarhadMortezapour that was not helpfull at all ;(
    – manish thakur
    2 days ago








1




1




What have you tried so far?
– adiga
2 days ago




What have you tried so far?
– adiga
2 days ago












@adiga i have tried this " for (var i in data) { $('.nav-tabs').append('<li role="presentation" class=""><a href="#' + i + '" aria-controls="' + i + '" role="tab" data-toggle="tab">' + i + '</a></li>'); var div = '<div role="tabpanel" class="tab-pane" id="' + i + '">'; for (var j = 0; j < data[i].length; j++) { var obj = data[i][j]; div += '<div id="' + obj.id + '">' + obj.type + '</div>'; } $('.tab-content').append(div); }" i ahve found this one from google only but its only working for ul tag and not for nav
– dheeraj kumar
2 days ago




@adiga i have tried this " for (var i in data) { $('.nav-tabs').append('<li role="presentation" class=""><a href="#' + i + '" aria-controls="' + i + '" role="tab" data-toggle="tab">' + i + '</a></li>'); var div = '<div role="tabpanel" class="tab-pane" id="' + i + '">'; for (var j = 0; j < data[i].length; j++) { var obj = data[i][j]; div += '<div id="' + obj.id + '">' + obj.type + '</div>'; } $('.tab-content').append(div); }" i ahve found this one from google only but its only working for ul tag and not for nav
– dheeraj kumar
2 days ago












Please see this example: jsfiddle.net/saslam/vepeLmm0
– Farhad Mortezapour
2 days ago




Please see this example: jsfiddle.net/saslam/vepeLmm0
– Farhad Mortezapour
2 days ago












@FarhadMortezapour its not talkin bootstrap cl;asses and not even form the toggle button when used for small device
– manish thakur
2 days ago




@FarhadMortezapour its not talkin bootstrap cl;asses and not even form the toggle button when used for small device
– manish thakur
2 days ago












@FarhadMortezapour that was not helpfull at all ;(
– manish thakur
2 days ago




@FarhadMortezapour that was not helpfull at all ;(
– manish thakur
2 days ago












1 Answer
1






active

oldest

votes

















up vote
2
down vote



accepted










I hope it will help to generate dynamic navbar from Json data.






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);
}

});

<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>








share|improve this answer























  • hey it is the solution i was looking for thanxx :)... i have a small question to ask may i ?
    – manish thakur
    2 days ago










  • Yes, ask question
    – Aquib Iqbal
    2 days ago










  • like in my json currently i am calling only sub menu name ...now what if i have to provide a link to submenu-1...should i have to call that link in my json?..like some one click on submenu then it should go to that link
    – manish thakur
    2 days ago












  • I updated the snippet, check it you will get how to add link(url) to sub menus
    – Aquib Iqbal
    2 days ago










  • wait ill test it
    – manish thakur
    2 days ago











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53410013%2fhow-to-create-bootstrap4-navbar-with-menus-and-sub-menus-with-json-data%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
2
down vote



accepted










I hope it will help to generate dynamic navbar from Json data.






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);
}

});

<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>








share|improve this answer























  • hey it is the solution i was looking for thanxx :)... i have a small question to ask may i ?
    – manish thakur
    2 days ago










  • Yes, ask question
    – Aquib Iqbal
    2 days ago










  • like in my json currently i am calling only sub menu name ...now what if i have to provide a link to submenu-1...should i have to call that link in my json?..like some one click on submenu then it should go to that link
    – manish thakur
    2 days ago












  • I updated the snippet, check it you will get how to add link(url) to sub menus
    – Aquib Iqbal
    2 days ago










  • wait ill test it
    – manish thakur
    2 days ago















up vote
2
down vote



accepted










I hope it will help to generate dynamic navbar from Json data.






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);
}

});

<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>








share|improve this answer























  • hey it is the solution i was looking for thanxx :)... i have a small question to ask may i ?
    – manish thakur
    2 days ago










  • Yes, ask question
    – Aquib Iqbal
    2 days ago










  • like in my json currently i am calling only sub menu name ...now what if i have to provide a link to submenu-1...should i have to call that link in my json?..like some one click on submenu then it should go to that link
    – manish thakur
    2 days ago












  • I updated the snippet, check it you will get how to add link(url) to sub menus
    – Aquib Iqbal
    2 days ago










  • wait ill test it
    – manish thakur
    2 days ago













up vote
2
down vote



accepted







up vote
2
down vote



accepted






I hope it will help to generate dynamic navbar from Json data.






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);
}

});

<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>








share|improve this answer














I hope it will help to generate dynamic navbar from Json data.






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);
}

});

<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>








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);
}

});

<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>





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);
}

});

<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>






share|improve this answer














share|improve this answer



share|improve this answer








edited 2 days ago

























answered 2 days ago









Aquib Iqbal

2147




2147












  • hey it is the solution i was looking for thanxx :)... i have a small question to ask may i ?
    – manish thakur
    2 days ago










  • Yes, ask question
    – Aquib Iqbal
    2 days ago










  • like in my json currently i am calling only sub menu name ...now what if i have to provide a link to submenu-1...should i have to call that link in my json?..like some one click on submenu then it should go to that link
    – manish thakur
    2 days ago












  • I updated the snippet, check it you will get how to add link(url) to sub menus
    – Aquib Iqbal
    2 days ago










  • wait ill test it
    – manish thakur
    2 days ago


















  • hey it is the solution i was looking for thanxx :)... i have a small question to ask may i ?
    – manish thakur
    2 days ago










  • Yes, ask question
    – Aquib Iqbal
    2 days ago










  • like in my json currently i am calling only sub menu name ...now what if i have to provide a link to submenu-1...should i have to call that link in my json?..like some one click on submenu then it should go to that link
    – manish thakur
    2 days ago












  • I updated the snippet, check it you will get how to add link(url) to sub menus
    – Aquib Iqbal
    2 days ago










  • wait ill test it
    – manish thakur
    2 days ago
















hey it is the solution i was looking for thanxx :)... i have a small question to ask may i ?
– manish thakur
2 days ago




hey it is the solution i was looking for thanxx :)... i have a small question to ask may i ?
– manish thakur
2 days ago












Yes, ask question
– Aquib Iqbal
2 days ago




Yes, ask question
– Aquib Iqbal
2 days ago












like in my json currently i am calling only sub menu name ...now what if i have to provide a link to submenu-1...should i have to call that link in my json?..like some one click on submenu then it should go to that link
– manish thakur
2 days ago






like in my json currently i am calling only sub menu name ...now what if i have to provide a link to submenu-1...should i have to call that link in my json?..like some one click on submenu then it should go to that link
– manish thakur
2 days ago














I updated the snippet, check it you will get how to add link(url) to sub menus
– Aquib Iqbal
2 days ago




I updated the snippet, check it you will get how to add link(url) to sub menus
– Aquib Iqbal
2 days ago












wait ill test it
– manish thakur
2 days ago




wait ill test it
– manish thakur
2 days ago


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53410013%2fhow-to-create-bootstrap4-navbar-with-menus-and-sub-menus-with-json-data%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Lallio

Unable to find Lightning Node

Futebolista