使用的目的selectAll(null)是确保“输入”选择始终对应于数据数组中的元素,对于数据中的每个元素都包含一个元素。
要回答你的问题,我们必须简要解释一下D3.js中的“输入” 选择。你可能知道,D3的主要功能之一是将数据绑定到DOM元素的能力。
在D3.js中,当一种将数据绑定到DOM元素时,可能出现三种情况:
在情况#3中,所有没有相应DOM元素的数据点都属于“输入”选择。
因此,在D3.js中,“输入”选择是在将元素连接到数据之后包含与任何DOM元素都不匹配的所有数据的选择。如果在“输入”选项中使用附加函数,则D3将创建新元素,并为我们绑定该数据。