在Web開(kāi)發(fā)中,目錄樹(shù)的遍歷是一個(gè)非常常見(jiàn)的需求。而利用jQuery可以輕松地通過(guò)遞歸實(shí)現(xiàn)目錄樹(shù)的遍歷,并將每個(gè)節(jié)點(diǎn)的路徑組成一個(gè)完整的路徑。
function traverseDirectoryTree(currentNode, path) { // 獲取當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn) var children = currentNode.children(); // 如果子節(jié)點(diǎn)為空,則表示當(dāng)前節(jié)點(diǎn)是葉節(jié)點(diǎn),返回完整路徑 if (children.length === 0) { return path + "/" + currentNode.text(); } else { // 否則遍歷子節(jié)點(diǎn),并將當(dāng)前節(jié)點(diǎn)的路徑追加到路徑上 var paths = []; children.each(function() { var childNode = $(this); var childPath = traverseDirectoryTree(childNode, path + "/" + currentNode.text()); paths.push(childPath); }); // 返回所有子節(jié)點(diǎn)遍歷后的路徑 return paths; } }
上述代碼實(shí)現(xiàn)了目錄樹(shù)遍歷的遞歸函數(shù),使用時(shí)只需要傳入根節(jié)點(diǎn)和初始路徑即可。返回的結(jié)果是一個(gè)數(shù)組,包含所有葉節(jié)點(diǎn)遍歷后組成的路徑。
通過(guò)這個(gè)遞歸函數(shù),我們可以輕松地遍歷任意層數(shù)的目錄樹(shù),并生成每個(gè)葉節(jié)點(diǎn)的完整路徑。