![](/img/trans.png)
[英]How do I programmatically select a node in jsTree and open all parents
[英]How to open all jstree nodes (parents and children)
有一個網頁有 129 個父節點。
並且每個父節點都有多個子節點到第四級(順序>家族>屬>物種)。
我想打開所有節點。
我在這里看到了一些帶有腳本的帖子來做到這一點。
但我不知道如何使用它。
注意:我的實際目的是使用嵌套格式復制所有數據。
Ps 我不是網絡開發人員,那也不是我的網站。
以下代碼將遞歸擴展所有鏈接,然后使用樹表示從中生成 JSON,然后將 JSON 復制到剪貼板中。
我為每棵樹設置了 2 秒的超時時間,以便在網絡請求之后出現子樹,因此需要 2 秒 * 該頁面中所有可用的樹,因此您將不得不等待很長時間它完成,如果你有一個快速的連接,你可以將超時減少到 1 秒以使其更快。
function extractChilds(ulNode) {
return [...ulNode.childNodes].map(node => {
let data = {
title: node.querySelector('a')?.innerText?.trim()
}
let child = node.querySelector('ul');
if(child) {
data.childrens = extractChilds(child);
}
return data;
});
}
async function main() {
let done = false;
while(!done) {
for(const e of [...document.querySelectorAll('.jstree-closed')]) {
await new Promise(r => setTimeout(r, 2000))
e.querySelector('ins').click()
}
if(document.querySelectorAll('.jstree-closed').length === 0) done = true;
}
console.log('expanded all of the trees')
return extractChilds(document.querySelector("#classification > ul"));
}
main().then(copy);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.