d3.js树-选择叶节点列表将返回树中的所有节点,而不仅仅是选定的节点项

时间:2019-12-11 07:50:51

标签: jquery d3.js

我在d3.js v3中有一个搜索功能适用于我的d3树。搜索使用的是select2.js选择列表,该列表中填充了所有叶节点,如this example

从选择列表中选择一个节点项目会打开树以显示该节点,并将该节点更改为红色。

迁移到d3 v5之后,搜索现在返回树中的所有节点,而不仅仅是返回选择列表中的选定项。我认为该问题的出现部分是由于以下原因中的TypeError: parent is null

function searchTree( d ) {
            if ( d.children )
                d.children.forEach( searchTree );
            else if ( d._children )
                d._children.forEach( searchTree );
            var searchFieldValue = eval( searchField );
            if ( searchFieldValue && searchFieldValue.toLowerCase().match( searchText.toLowerCase() ) ) {
                // Walk parent chain
                var ancestors = [];
                var parent = d;
                while ( typeof ( parent ) !== "undefined" ) {
                    ancestors.push( parent );
                    console.log(parent);
                    parent.class = "found";
                    parent = parent.parent;
                }
                console.log(ancestors);
            }
        }

有什么想法吗?

请参见fiddle

0 个答案:

没有答案