我对 Jquery 和 JSON 比较陌生,这是我在这里的第一篇文章,请多多包涵。
我有一个 JSON 菜单字符串,其中包含三个项目(名称、url、id - 我们的内部页面 id 号)的数组,并且顶级导航构建得很好。我遍历顶层项目并调用递归函数来获取子菜单。
我现在要做的是在网页的单独部分中,使用 JSON 菜单字符串查找顶级页面(例如,news.aspx)并为该页面构建一个菜单,它是要显示的子菜单项在仅显示在新闻页面上的左侧导航中。
我遇到的问题是下面的这个脚本没有任何 Javascript 错误,但是,它正在拉动顶级导航。除了函数是 CreateMenu() 和 CreateMenuRecursive() 之外,顶级导航的调用方式基本相同。
我在这里使用的一些代码是通过阅读本网站上的其他帖子获得的,但我还没有找到答案。提前感谢您的帮助。
<div id="LeftNavDiv"> </div>
<script type="text/javascript">
$(function(){
var sidemenuString = CreateSideMenu();
$("#LeftNav").html(sidemenuString);
});
function CreateSideMenu(){
$.get("menu");
var sidenavHTML = new Sys.StringBuilder();
for(var i=0; i < menu.MenuItem.length; i++){
if(menu.MenuItem[i].id == 'a123456'){
CreateSideMenuRecursive(menu.MenuItem[i],sidenavHTML);
}
}
return sidenavHTML.toString();
}
function CreateSideMenuRecursive(item, outputHTML){
if(item.MenuItem == null || item.MenuItem.length == 0)
return;
outputHTML.append("<ul>");
for(var i=0; i < item.MenuItem.length; i++){
if(item.MenuItem[i].id == CurrentPageID){
outputHTML.append("<li><a href='" + item.MenuItem[i].url + "'>" + item.MenuItem[i].label + "</a>");
}
CreateSideMenuRecursive(item.MenuItem[i], outputHTML);
outputHTML.append("</li>");
}
outputHTML.append("</ul>");
}
</script>