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

jquery list 轉 tree

傅智翔1年前8瀏覽0評論

JQuery是目前最流行的JavaScript框架之一,它可以方便地操作DOM元素,實現各種交互效果和動態效果。其中一個常見的應用場景就是將列表轉化為樹形結構,以便于更加清晰地展示和管理數據。

我們可以使用JQuery提供的針對列表的方法,將原始數據轉化為樹形結構,實現類似文件夾目錄的效果。下面是一個解釋如何使用JQuery來將列表轉化為樹形結構的示例代碼。

<ul id="list">
<li data-id="1" data-pid="0">節點 1</li>
<li data-id="2" data-pid="1">節點 2</li>
<li data-id="3" data-pid="1">節點 3</li>
<li data-id="4" data-pid="2">節點 4</li>
<li data-id="5" data-pid="3">節點 5</li>
</ul>
<script>
var treeData = [], // 保存樹形結構的數組
listData = []; // 原始數據
// 遞歸生成樹形結構
function createTreeData(pid, arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].pid == pid) {
var obj = {};
obj.id = arr[i].id;
obj.name = arr[i].name;
obj.children = [];
treeData.push(obj);
createTreeData(arr[i].id, arr);
}
}
}
$(function() {
// 獲取列表數據
$('#list li').each(function() {
var obj = {};
obj.id = $(this).data('id');
obj.pid = $(this).data('pid');
obj.name = $(this).text();
listData.push(obj);
});
// 生成樹形結構數據
createTreeData(0, listData);
console.log(treeData);
});
</script>

上面的代碼中,我們使用了兩個數組來分別保存原始數據和生成的樹形結構,其中不同節點之間的層級關系通過`data-pid`屬性來表示。在頁面加載后,我們使用JQuery的`each()`方法遍歷列表元素,將每個節點的信息保存到數組`listData`中。然后,我們定義一個名為`createTreeData()`的遞歸函數,通過遍歷`listData`數組來生成樹形結構。最后,在頁面加載完成后,將調用`createTreeData()`函數,將生成的樹形結構保存到數組`treeData`中,并輸出到控制臺。

通過上面的方法,我們可以輕松地將列表轉化為樹形結構,實現更為清晰和方便的展示和管理效果。