繁体   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