什么是d3默认键功能?

时间:2014-09-24 16:34:20

标签: javascript html d3.js

试图找出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/

1 个答案:

答案 0 :(得分:3)

From the documentation:

  

如果未指定key函数,则指定数组中的第一个数据将分配给当前选择中的第一个元素,第二个数据分配给第二个选定元素,依此类推。

您将获得三个新元素,因为现有元素都没有密钥。数据关联是基于索引的(默认)或基于键的(如果传递了键函数)。