基于子节点存在的过滤元素

Wex*_*Wex 5 javascript d3.js

如果我想根据元素的子节点的存在来过滤元素,我该怎么做d3.js

例如在这个 html 结构中,我将如何选择<li>具有子<a>元素的元素?

<ul>
    <li><a href="#">Link 1</a></li>
    <li>Bullet</li>
    <li><a href="#">Link 2</a></li>
    <li><a href="#">Link 3</a></li>
    <li>Bullet</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

对于那些不知道的人,提出和回答自己的问题是完全可以的......

Wex*_*Wex 3

使用该filter()功能:

var ul = d3.select("ul");
var lis = ul.selectAll("li").filter(function() {
    return ! d3.select(this).select("a").empty();
});
Run Code Online (Sandbox Code Playgroud)