欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

jquery遞歸輸出層級菜單

邵凱文1年前7瀏覽0評論
對于具有多個層級的菜單,我們通常需要利用遞歸的方式來輸出。在本文中,我們將通過使用jQuery來實現遞歸輸出層級菜單的功能。
首先,我們需要準備一個層級嵌套的菜單結構,并在其中添加數據屬性來標識其所屬的層級。例如:
<ul id="menu">
<li data-level="1">一級菜單1
<ul>
<li data-level="2">二級菜單1-1</li>
<li data-level="2">二級菜單1-2
<ul>
<li data-level="3">三級菜單1-2-1</li>
</ul>
</li>
</ul>
</li>
<li data-level="1">一級菜單2</li>
</ul>

接下來,我們使用jQuery來編寫遞歸函數。
function renderMenu($menu, level) {
var $children = $menu.children('li[data-level="' + level + '"]');
if ($children.length) {
var $ul = $('<ul>');
$children.each(function() {
var $li = $('<li>').html($(this).html());
$ul.append($li);
var $subMenu = $(this).children('ul');
if ($subMenu.length) {
$li.append(renderMenu($subMenu, level + 1));
}
});
return $ul;
} else {
return null;
}
}

這個函數接受兩個參數,第一個是當前的菜單元素,第二個是當前的層級。首先,它找到所有屬于當前層級的子菜單元素。如果子菜單元素存在,我們就創建一個ul元素,并遍歷每個子菜單元素,將其轉化為li元素并添加到ul中。接下來,我們遞歸地對子菜單進行相同的操作,直到沒有子菜單為止。最后,將ul元素返回。
最后,我們調用renderMenu函數并將其返回的ul元素添加到HTML文檔中即可。
$(document).ready(function() {
var $menu = $('#menu');
var $ul = renderMenu($menu, 1);
if ($ul) {
$menu.html($ul);
}
});

在這段代碼中,我們找到頂層的菜單元素,并將其傳遞給renderMenu函數。函數返回的ul元素將替換原有的菜單元素。
通過這種方式,我們可以使用jQuery來方便地遞歸輸出任意層級的菜單結構。