试图找出d3中的默认键功能。
如果我在html正文中包含的三个<p>
元素具有0,1,2的键,并且我使用d3 enter()
函数来附加<p>
元素的键0,1,5为什么我的d3代码会将所有<p>
个元素添加到我的网页而不只是<p>
的密钥为5?
<html>
<head>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<p>joe</p>
<p>joe</p>
<p>joe</p>
<script type="text/javascript">
d3.select("body").selectAll("p")
.data([ 0, 1, 5], function(d){ return d; })
.enter()
.append("p")
.text(function(d){ return d; });
</script>
</body>
</html>
的jsfiddle: http://jsfiddle.net/266z3dr1/
答案 0 :(得分:3)
如果未指定
key
函数,则指定数组中的第一个数据将分配给当前选择中的第一个元素,第二个数据分配给第二个选定元素,依此类推。
您将获得三个新元素,因为现有元素都没有密钥。数据关联是基于索引的(默认)或基于键的(如果传递了键函数)。