D3 Update,Enter,Exit

这里写图片描述

enter

<html>
    <body>
        <p>1</p>
        <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
        <script>
        var dataset = [ 1 , 2 , 3 , 4 , 5 ];
        var p = d3.select("body").selectAll("p");
        var update = p.data(dataset);
        var enter = update.enter();//获取enter部分
        update.text(function(d){
            return "update " + d;
        });//update部分的处理:更新
        enter.append("p") // 添加p标签直到和数组对齐
            .text(function(d){
                return "enter " + d;
            });//enter部分的处理:添加元素后赋予属性值
        </script>
    </body>
</html>

exit

<html>
    <body>
        <p>1</p>
        <p>2</p>
        <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
        <script>
            var dataset = [ 0 ];
            var p = d3.select("body").selectAll("p");//选择body中的p元素
            var update = p.data(dataset);//获取update部分
            var exit = update.exit();//获取exit部分
            update.text(function(d){
                return "update " + d;
            });//update部分的处理:更新属性值
            //exit部分的处理:修改p元素的属性
            exit.text(function(d){
                    return "exit";
                });
            // exit.remove();//exit部分的处理通常是删除元素
        </script>
    </body>
</html>

参考文献:
http://d3.decembercafe.org/pages/lessons/10.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽可能清晰地回答你的问题。首先,我们先来了解一下D3.js的enter-update-exit模型。 在D3.js中,数据驱动是一种重要的思想,它能够让你更加高效地创建和更新可视化图表。enter-update-exit模型是D3.js中常用的数据驱动模型,它有三个部分: 1. enter部分:表示需要添加的新元素,这些元素是数据集中存在但是DOM中不存在的元素。 2. update部分:表示需要更新的已有元素,这些元素既存在于数据集中也存在于DOM中。 3. exit部分:表示需要删除的已有元素,这些元素存在于DOM中但是不存在于数据集中。 那么,如何使用enter-update-exit模型展示n个p标签,绑定m个数据的数据集呢?下面是一个示例代码: ```javascript // 假设我们有一个包含m个数据的数据集data var data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // 选择所有p标签 var p = d3.selectAll("p"); // 绑定数据 var update = p.data(data); // 处理update部分 update.text(function(d) { return d; }); // 处理enter部分 update.enter() .append("p") .text(function(d) { return d; }); // 处理exit部分 update.exit().remove(); ``` 解释一下上面的代码: 1. 首先,我们定义了一个包含10个数字的数据集data。 2. 然后,我们使用d3.selectAll()方法选择所有p标签,并使用data()方法将数据集绑定到选择集上,这时候update部分就包含了所有已经存在的p标签,并且与数据集中的数据进行了绑定。 3. 接着,我们使用text()方法来更新update部分中的p标签的文本内容,这里使用了一个函数来返回每个数据值,从而实现了将数据集中的数据更新到p标签中。 4. 然后,我们使用enter()方法来处理enter部分,也就是需要添加的新元素。这里我们选择了p标签,并使用append()方法来添加新的p标签,然后同样使用text()方法来更新文本内容,这里的函数也是返回每个数据值。 5. 最后,我们使用exit()方法来处理exit部分,也就是需要删除的已有元素。这里我们只需要调用remove()方法将这些已有的p标签从DOM中删除即可。 通过这样的方式,我们就可以使用enter-update-exit模型来展示n个p标签,绑定m个数据的数据集,并且能够充分利用D3.js的数据驱动思想,实现高效的可视化效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值