试图理解d3的select .data()的工作原理
Trying to understand D3's selection.data() works
我的HTML如下:
<div>1</div>
<div>10</div>
我的JS:
divs = d3.select("body").selectAll("div");
alert(divs[0].length);
divs = divs.data([2]);
alert(divs[0].length);
My js fiddle:
http://jsfiddle.net/p2v3B/D3的文档- https://github.com/mbostock/d3/wiki/Selections#wiki-data -建议select .data()"将指定的数据数组与当前选择连接起来",但是这个测试似乎表明它没有连接任何东西,而是直接替换它。
ie。这里有两个div,然后在做data()之后只有一个?
连接的工作方式是尝试将给定的数据与现有元素相匹配。如果只给出一个数据项,它最多只能匹配一个。在您的示例中,2
由第一个现有元素匹配(因为默认情况下d3根据数组内的索引匹配),而另一个div
是.exit()
选择的一部分。
目的是在更新显示的数据时使用它。以前有两个数据项,现在只有一个。一个将以某种方式更新,而另一个将被删除。
如果你还没有这样做,我建议你看一下三个小圆圈教程,它更详细地解释和说明了这些概念。
相关文章:
- jQuery.data('itemname')不工作,但jQuery.attr('data it
- data th JS每页只工作一次
- execCommand('另存为',true,'data.csv');不在IE工作
- 无法从IE中的data.responseText获取结果,但在其他浏览器中工作
- data-toggle='tab' or ='pills' 不允许 URL 工作
- .data() 未按预期工作
- 试图了解 D3 .data 键函数的工作原理
- 它是如何工作的?target=$this.attr('data target')|| e.prevent
- jQuery data()工作不正常
- 添加数据到元素,使jquery's .data("key")工作
- jquery旋钮中的Data-step属性不工作
- javascript中的data-render属性是如何工作的
- 为什么没有AJAX的站点可以在HTTP上工作,而不能在Data URI模式下工作
- 滚动不工作在移动图像上的elevatezoom.js data-zoom-image
- 如何使yield工作与this.req.on('data'),而不需要更多的模块
- 试图理解d3的select .data()的工作原理
- jquery data()方法在IE9中不工作
- Bootstrap表Js中的data-sort-name是如何工作的
- jquery $("#id").html(data)不能在firefox上工作,但可以在chrome
- Bootstrap模型上的弹出窗口不能与data-toggle表一起工作