Javascript 试图理解D3';s selection.data()有效

Javascript 试图理解D3';s selection.data()有效,javascript,d3.js,Javascript,D3.js,我的HTML格式如下: <div>1</div> <div>10</div> 我的小提琴: D3的文档--建议selection.data()将指定的数据数组与当前选择连接起来,但是这个测试似乎表明它没有连接任何东西,而是直接替换它 例如,有两个div,然后在执行data()之后,只有一个div?联接的工作方式是,它尝试将给定的数据与现有元素匹配。如果只提供一个数据项,则它最多可以匹配一个。在您的例子中,2与第一个现有元素匹配(因为默认情况下d

我的HTML格式如下:

<div>1</div>
<div>10</div>
我的小提琴:

D3的文档--建议selection.data()将指定的数据数组与当前选择连接起来,但是这个测试似乎表明它没有连接任何东西,而是直接替换它


例如,有两个div,然后在执行data()之后,只有一个div?

联接的工作方式是,它尝试将给定的数据与现有元素匹配。如果只提供一个数据项,则它最多可以匹配一个。在您的例子中,
2
与第一个现有元素匹配(因为默认情况下d3基于数组中的索引进行匹配),而另一个
div
.exit()
选择的一部分

目的是在更新显示的数据时使用此选项。以前,有两个数据项,现在只有一个。其中一个将以某种方式更新,而另一个将被删除

如果您还没有这样做过,我建议您看一下,它将更详细地解释和说明这些概念

divs = d3.select("body").selectAll("div");
alert(divs[0].length);

divs = divs.data([2]);
alert(divs[0].length);