ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

图形化开发(二)03-D3.js之基本使用——选择-select()、插入-append()末尾插入和insert()前面插入、删除元素-remove()

2021-09-20 19:02:10  阅读:150  来源: 互联网

标签:body 03 d3 图形化 插入 var World Hello select


图形化开发(二)03-D3.js之基本使用——选择-select()、插入-append()末尾插入和insert()前面插入、删除元素-remove()

选择、插入、删除元素

已经讲解了 select 和 selectAll,以及选择集的概念。本节具体讲解这两个函数的用法。

假设在 body 中有三个段落元素:

<p>Apple</p>
<p>Pear</p>
<p>Banana</p>

现在,要分别完成以下四种选择元素的任务。

选择第一个 p 元素
t("p");
p1.style("color","red");
选择三个 p 元素
var p = body.selectAll("p");
p.style("color","red");
选择第二个 p 元素

有不少方法,一种比较简单的是给第二个元素添加一个 id 号。

Pear

然后,使用 select 选择元素,注意参数中 id 名称前要加 # 号。

var p2 = body.select("#myid");
p2.style("color","red");
选择后两个 p 元素

给后两个元素添加 class,

<p class="myclass">Pear</p>
<p class="myclass">Banana</p>

由于需要选择多个元素,要用 selectAll。注意参数,class 名称前要加一个点。

var p = body.selectAll(".myclass");
p.style("color","red");

实例-selector

效果

在这里插入图片描述

selector.html

<html>

<head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
</head>

<body>
    <p>Hello World 1</p>
    <p>Hello World 2</p>
    <p class="p2">Hello World 1</p>
    <p class="p2">Hello World 2</p>
    <p>Hello World 1</p>
    <p>Hello World 2</p>
    <script src="https://d3js.org/d3.v5.js"></script>
    <script>
        // var paragraphs = document.getElementsByTagName("p");
        // for (var i = 0; i < paragraphs.length; i++) {
        //     var paragraph = paragraphs.item(i);
        //     paragraph.innerHTML = "I like dog.";
        // }    

        // 1. 获取dom
        // 2. 修改内容

        // select只会选中第一个标签
        // d3可以完美支持css选择器
        d3.select("body").selectAll(".p2").text("www.ourd3js.com").style('color' , 'red').style('font-size', '30px')
    </script>
</body>

</html>

插入元素

插入元素涉及的函数有两个:

  • append():在选择集末尾插入元素
  • insert():在选择集前面插入元素

假设有三个段落元素,与上文相同。

append()

body.append("p")
    .text("append p element");

在 body 的末尾添加一个 p 元素,结果为:

Apple
Pear
Banana
append p element
实例-append

效果

在这里插入图片描述

代码

<html>

<head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
</head>

<body>
    <p>Hello World 1</p>
    <p>Hello World 2</p>
    <!-- <h1></h1> -->
    <p class="p2">Hello World 1</p>
    <p class="p2">Hello World 2</p>
    <p>Hello World 1</p>
    <p>Hello World 2</p>
    <script src="https://d3js.org/d3.v5.js"></script>
    <script>
        // var paragraphs = document.getElementsByTagName("p");
        // for (var i = 0; i < paragraphs.length; i++) {
        //     var paragraph = paragraphs.item(i);
        //     paragraph.innerHTML = "I like dog.";
        // }    

        // 1. 获取dom
        // 2. 修改内容

        // select只会选中第一个标签
        // d3可以完美支持css选择器
        d3.select("body").select(".p2").append("h1").text('append');


        // 1. select一定要通过父级调用, 传入2个参数 1. 标签名 2. 在谁前面插入
        // d3.select("body").insert('h1', '.p2').text('insert');

        // d3.select("body").remove()
    </script>
</body>

</html>

insert()

在 body 中 id 为 myid 的元素前添加一个段落元素。

body.insert("p","#myid")
  .text("insert p element");

已经指定了 Pear 段落的 id 为 myid,因此结果如下。

Apple
insert p element
Pear
Banana
实例-insert

效果

在这里插入图片描述

代码

<html>

<head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
</head>

<body>
    <p>Hello World 1</p>
    <p>Hello World 2</p>
    <!-- <h1></h1> -->
    <p class="p2">Hello World 1</p>
    <p class="p2">Hello World 2</p>
    <p>Hello World 1</p>
    <p>Hello World 2</p>
    <script src="https://d3js.org/d3.v5.js"></script>
    <script>
        // var paragraphs = document.getElementsByTagName("p");
        // for (var i = 0; i < paragraphs.length; i++) {
        //     var paragraph = paragraphs.item(i);
        //     paragraph.innerHTML = "I like dog.";
        // }    

        // 1. 获取dom
        // 2. 修改内容

        // select只会选中第一个标签
        // d3可以完美支持css选择器
        // d3.select("body").select(".p2").append("h1").text('append');


        // 1. select一定要通过父级调用, 传入2个参数 1. 标签名 2. 在谁前面插入
        d3.select("body").insert('h1', '.p2').text('insert');

        // d3.select("body").remove()
    </script>
</body>

</html>

删除元素

删除一个元素时,对于选择的元素,使用 remove 即可,例如:

var p = body.select("#myid");
p.remove();
实例-remove

效果

在这里插入图片描述

代码

<html>

<head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
</head>

<body>
    <p>Hello World 1</p>
    <p>Hello World 2</p>
    <!-- <h1></h1> -->
    <p class="p2">Hello World 1</p>
    <p class="p2">Hello World 2</p>
    <p>Hello World 1</p>
    <p>Hello World 2</p>
    <script src="https://d3js.org/d3.v5.js"></script>
    <script>
        // var paragraphs = document.getElementsByTagName("p");
        // for (var i = 0; i < paragraphs.length; i++) {
        //     var paragraph = paragraphs.item(i);
        //     paragraph.innerHTML = "I like dog.";
        // }    

        // 1. 获取dom
        // 2. 修改内容

        // select只会选中第一个标签
        // d3可以完美支持css选择器
        // d3.select("body").select(".p2").append("h1").text('append');


        // 1. select一定要通过父级调用, 传入2个参数 1. 标签名 2. 在谁前面插入
        // d3.select("body").insert('h1', '.p2').text('insert');

        // d3.select("body").remove()
        d3.select(".p2").remove()
    </script>
</body>

</html>

标签:body,03,d3,图形化,插入,var,World,Hello,select
来源: https://blog.csdn.net/weixin_44867717/article/details/120394163

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有