簡體   English   中英

如何打開所有jstree節點(父節點和子節點)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM