仅选择使用d3.js更新元素

仅选择使用d3.js更新元素,d3.js,D3.js,使用d3.jsjoin是否有一种方法可以分别选择“正在更新”元素和“正在输入”元素 updateAndEnter = d3.selectAll('element').data(data); entering = updateAndEnter.enter(); exiting = updateAndEnter.exit(); updatingOnly = ??; 是的,数据联接之后的选择包含“仅更新”元素。在添加到enter()选择之后,它将被扩展以包括输入的元素 见: 这是我的荣幸 对我

使用
d3.js
join
是否有一种方法可以分别选择“正在更新”元素和“正在输入”元素

updateAndEnter = d3.selectAll('element').data(data);

entering = updateAndEnter.enter();

exiting = updateAndEnter.exit();

updatingOnly = ??;

是的,数据联接之后的选择包含“仅更新”元素。在添加到enter()选择之后,它将被扩展以包括输入的元素

见:

这是我的荣幸

对我来说,这也有点让人困惑:似乎唯一可用的集合实际上是ENTER+UPDATE(混合在一起)和EXIT

但是如果我想工作或者至少只识别更新的元素呢? 我编写了一个非常简单的函数(如下所示,简单地将其包装在基本html页面末尾的脚本标记中),显示了这个简单的难题:如何突出显示更新的元素?只有进入和退出似乎反应“正确”

要测试它,只需输入chrome控制台:

manage_p(['append','a few','paragraph'])
manage_p(['append','a few','new','paragraph'])
manage_p(['append','paragraphs'])
我可以得到绿色或红色突出显示,我不能得到白色

也许我们缺少D3Js规格

致以最良好的祝愿, 法布里齐奥

function join_p(dataSet) {

var el = d3.select('body');
var join = el
.selectAll('p')
.data(dataSet);

join.enter().append('p').style('background-color','white');

join.style('background-color','green').text(function(d) { return d; });

join.exit().text('eliminato').style('background-color','red');
}
function join_p(dataSet) {

var el = d3.select('body');
var join = el
.selectAll('p')
.data(dataSet);

join.enter().append('p').style('background-color','white');

join.style('background-color','green').text(function(d) { return d; });

join.exit().text('eliminato').style('background-color','red');
}