对退出数据进行操作
Operating on exiting data
我有一些像这样的代码:
var data = [1,2,3,4,5,6,7,8,9,10];
var dataMap = {
1 : 'a',
2 : 'b',
3 : 'c',
4 : 'd',
5 : 'e',
6 : 'f',
7 : 'g',
8 : 'h',
9 : 'i',
10 : 'j'
}
var root = d3.select('#myDiv').selectAll('div').data(data, function(d){return d;})
.enter()
.append('div')
.text(function(d){ return dataMap[d] });
var newData = [2,3,4,6,7,8];
var select = root.selectAll('div').data(newData, function(d){ return d; });
我需要删除不再存在的div,但首先,我需要操作与现有div相关的数据,如下所示:
exitingData.each(function(d){ dataMap.delete[d]; });
我在获得数组exitingData
时遇到了麻烦,我想成为我最初绑定到我的div的所有数据的数组,其id不在新数据中。当我输入新数据时,是否有方法获取过时的数据?我试过这个,它不工作:
exit.each(function(d){ console.log(d); console.log('ran!') });
这是我正在使用的小提琴:小提琴
我相信这就是你想要的。基本上,我正在将现有div的文本打印到控制台。
function update(dataset) {
var root = d3.select('#myDiv')
.selectAll('div')
.data(dataset, function(d){return d;});
// enter selection
root
.enter()
.append('div');
// update selection
root
.text(function(d){ return dataMap[d] });
// capturing the exit selection
var rootExit = root.exit();
// using the exit selection before removal
// i.e. printing exiting div text to console
rootExit.each(function(d){ console.log(d3.select(this).text()) });
// finally removing elements
rootExit
.remove();
};
更新小提琴。
相关文章:
- 操作数据的最佳实践
- 使用Angular JS for WordPress JSON API使用JSON操作数据
- Javascript D3如何从CSV访问和操作数据集
- 什么's在Observables(angular2)中操作数据的模式
- 在酒窝中显示之前操作数据
- 操作数据表字段的结果
- 如何从标签<a>'s操作数据
- 如何在收到AJAX响应后操作数据
- 在d3/Canvas JS中操作数据的最佳方式
- 从存储操作数据
- 我怎样才能改进这个JavaScript DOM操作数据结构/算法
- 从AJAX调用操作数据:PHP或Javascript
- 从谷歌电子表格创建表格:如何操作数据
- 在angularjs/javascript中操作数据
- 我如何操作数据来自多个异步ajax异步调用与回调
- 在javascript上操作数据
- Jquery,在ajax成功函数中操作数据
- 使用google脚本操作数据条件格式和数据验证
- 在回调函数中操作数据
- 使用JSON解析/stringify操作数据