d3选择集合核心方法(一):data、enter、exit

      d3的全称是数据驱动文档,核心是将DOM文档的操作转换为对数据集合的操作,把开发人员的聚焦从DOM文档转移到数据集合上,大大简化了DOM文档与数据集合之间的联动操作,所以理解d3的集合操作就是学习d3的关键。
      假定原有的集合与待运算的集合分别为A、B,d3的集合操作结果共有三种,待更新的集合(也就是共有的集合,A∩B)、独有的集合(A-B)以及新增的集合(B-A),对应的方法分别是data、exit以及enter,它们的示意图如下。
d3数据集合操作
      简单的记忆方法就是那串红色的字母,拼出来就是血,d3真是血淋林的集合操作啊。
      假定文档中已存在的元素如下:

<ul id="list-group">
    <li>0</li>
    <li>3</li>
    <li>5</li>
</ul>

      待操作的集合为[1,2,3,4,5],示例代码及操作结果如下:

//  待运算的集合
var bSet   = [1,2,3,4,5];
//  集合的唯一性识别
var iden   = function(d) {
    //  如果元素没有绑定过数据,数据就是其文字内容
    return d ? d : parseInt(this.textContent);  // 为了方便比较,这里对其类型进行了转换parse,也可以不转换
};
//  共有的集合,即A∩B,返回的结果为[3,5]
var update = d3.select('#list-group').selectAll('li')
               .data(bSet, iden);
//  进行exit操作,即A-B,返回的结果为[0]
var itemsOfAOnly = update.exit();
//  进行enter,即B-A,返回的结果为[1, 2, 4]
var newItems     = update.enter();      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值