javascript - 如何使用 jquery 清空嵌套 <li> 中的 <ul>

标签 javascript jquery

我正在尝试创建一个菜单及其子菜单,但从数据库接收数据。我成功创建了菜单,这是我的代码:

 $(document).ready(function () {
    var url = '<%: Url.Content("~/") %>' + "Products/GetMenuList";
    $.getJSON(url, function (data) {
    var mainMenu = $("#content ul#navmenu-v");
        $.each(data, function (index, dataOption) { 
           var new_li = $("<li id='level1'><a href='javascript:void(0);' id='" 
                       + dataOption.ID + "' class ='selectedcategory'>" + 
                       dataOption.Name + "</a>");
        mainMenu.append(new_li);

    });
     $('.selectedcategory').mouseover(function () {
     $("ul#subCat").empty();
     $("li#level1").append("<ul id='subCat'>");
     var urlCat = '<%: Url.Content("~/") %>' + "Products/GetCategoryList";
        $.getJSON(urlCat, { Depid: this.id }, function (dataCat) {
           $.each(dataCat, function (indexCat, dataOptionCat) {
           $("ul#subCat").append("<li><a href='javascript:void(0);' 
              class='selectedsubcat' id='" + dataOptionCat.id + "'>" + 
                dataOptionCat.Name + "</a></li></ul></li>");
           });
       });
   }); 
  });
});

这是 HTML :

<div id="content">
 <ul id='navmenu-v'>
 </ul>
</div>

但由于主菜单,它没有得到正确的子菜单。 谁能告诉我一些建议。

非常感谢。

最佳答案

试试这个看起来像你想要的我在这里模拟了它 http://jsfiddle.net/d4udts/W9cCE/5/

$(document).ready(function () {


  var url = '<%: Url.Content("~/") %>' + "Products/GetMenuList";
  $.getJSON(url, function (data) {

    var mainMenu = $("#content ul#navmenu-v");
    $.each(data, function (index, dataOption) {
       var new_li = $("<li class='level1'><a href='javascript:void(0);' id='"+ dataOption.ID + "' class ='selectedcategory'>" + dataOption.Name + "</a>");
       mainMenu.append(new_li);

    });

    $('.level1').hover(function(){
       $(this).append("<ul class='subCat'></ul>");
       var ul=$(this).children('ul');

       var urlCat = '<%: Url.Content("~/") %>' + "Products/GetCategoryList";
       $.getJSON(urlCat, { Depid: $(this).find('a.selectedcategory').attr('id')}, function (dataCat) {

         $.each(dataCat, function (indexCat, dataOptionCat) {
           $(ul).append("<li><a href='javascript:void(0);'" +
           "class='selectedsubcat' id='" + dataOptionCat.id + "'>" +
            dataOptionCat.Name + "</a></li>");
          });
        });
      },function(){
      $(this).children('ul').remove();
    });
  }); 
});

关于javascript - 如何使用 jquery 清空嵌套 <li> 中的 <ul>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9801181/

相关文章:

javascript - Google App Engine 中的 app.yaml 配置

javascript - 如何仅通过单独的图标而不是引用的输入字段激活 YUI Datepicker?

javascript - 如何从另一个页面触发页面刷新(无重定向)?

javascript - 预览不立即显示

javascript - 使用 dd/mm/yyyy 检查一个日期是否早于另一个日期

javascript - HighCharts 禁用图例中的某些系列名称

javascript - 重构 jQuery 函数

jquery - 通过 jQuery 反转表中父 tr 排序堆栈的最佳方法

javascript - 从 HTML 按钮调用外部 javascript

javascript - 如何在指令中使用 ng-show 切换表单元素?