【问题标题】:D3 Tree - How to expand tree to show and highlight all nodes of same name?D3 树 - 如何扩展树以显示和突出显示所有同名节点?
【发布时间】:2019-08-26 05:17:18
【问题描述】:

我将Patrick Brockmann's CollapsibleTree Search 用于我的 D3 树,其中树会根据Select2#search 中选择的术语展开以显示和突出显示链接和节点。这很好用。

我现在有一个场景,我需要通过单击按钮来自动展开树以显示和突出显示(根据 Patrick Brockmann 的示例)与相同名称匹配的所有节点,即d.name = 'Bill'。

可以显示没有该名称的节点,但我只希望该名称的节点显示为红色,并按照 Patrick 的示例使用红色连接器。

Fiddle

【问题讨论】:

  • 问题不清楚。请用更多代码详细解释。在小提琴中我看不到select
  • jsfiddle.net/ramachandran_123456/gp3hejtc/1 ,你能检查一下这是否是必需的吗?
  • Ram,不是真的,我需要所有节点都具有相同的名称,例如根据 OP 显示并突出显示“Bill”。

标签: d3.js


【解决方案1】:

如果我很好理解这个问题,它已经像这样工作了,你只需要在别处输入并调用搜索。

例如,我在 html 中添加了一个输入文本,并在每次值更改时调用搜索。

<input type="text" id="searchText" value="test">

$("#searchText").on("input", function(e) {
    clearAll(root);
    expandAll(root);
    update(root);

    searchField = "d.name";
    searchText = e.target.value;
    //console.log(searchText);
    searchTree(root);
    root.children.forEach(collapseAllNotFound);
    update(root);
})

这是获取“Patrick Brockmann 的 CollapsibleTree Search”示例的补丁,用于处理输入文本

--- index.html.orig     2019-09-04 01:06:06.545853315 +0200
+++ index.html  2019-09-04 01:13:30.291689888 +0200
@@ -55,6 +55,7 @@
 <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.css"></link>
 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.js"></script>

+<input type="text" id="searchText" value="test">
 <div id="block_container">
    <div id="searchName"></div>
 </div>
@@ -157,6 +158,19 @@     searchTree(root);
     root.children.forEach(collapseAllNotFound);
     update(root);
+})
+
+$("#searchText").on("input", function(e) {
+    clearAll(root);
+    expandAll(root);
+    update(root);
+
+    searchField = "d.name";
+    searchText = e.target.value;
+    console.log(searchText);
+    searchTree(root);
+    root.children.forEach(collapseAllNotFound);
+    update(root);
 })

【讨论】:

  • 你能在更新的小提琴中展示这个吗?我还需要突出显示搜索节点的节点和链接...
  • there jsfiddle.net/5jdcfLn4 我已经分叉了你的小提琴,突出显示不适用于你的小提琴(也许是一些 css?),但正在使用“Patrick Brockmann 的 CollapsibleTree Search”示例,我有在当地工作
  • @IlludiumPu36 there jsfiddle.net/5jdcfLn4/1 ,突出显示不起作用,因为您删除了一些“找到”条件(并且它在 css 中也丢失了)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-03
相关资源
最近更新 更多