【 D3.js 入門系列 — 2.1 】 選擇、插入、刪除元素


1. select 和 selectAll 的區別

在 D3 中,選擇元素的函數有兩個:select 和 selectAll,它們的使用非常重要。先說明一下它們的區別:

select 是選擇所有指定元素的第一個
selectAll 是選擇指定元素的全部(用於同時操作)
這兩個函數返回的結果稱為選擇集。

來看一個具體的例子,現有如下代碼:

<html>  
  <head>  
        <meta charset="utf-8">  
        <title>select,append,remove</title>  
  </head> 
</style>
    <body>  
    <h1>This is a cat.</h1>
    <h1>That is a dog.</h1>
    <h1>I like cat.</h1>
        
    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>  
        <script>
        
        </script>  
  
    </body>  
</html>

熟悉 HTML 的朋友一定會知道上面的代碼輸出什么,是三行 h1 大小的標題。

現在要完成兩種選擇元素的任務:

(1)選擇第一個 <h1> 元素

(2)同時選擇三個 <h1> 元素

代碼如下:

var body = d3.select("body");           //選擇body(第一個body,當然也只有一個body)
var h1 = body.select("h1");             //選擇第一個h1
var all_h1 = body.selectAll("h1");      //選擇所有的h1

為了證明上面的變量 h1 選擇的是第一個 <h1> 元素,變量 all_h1 選擇的是所有的 <h1> 元素,我們加上一行代碼:

h1.style("color","red");

給 h1 變量選中的元素上色,加上這一句后,會發現結果為:

211

因此,可以證明選中的是第一個 <h1> 元素。

如果換上代碼:

all_h1.style("color","blue");

會發現三行文字都變成了藍色。

213

那么如果想選擇第二個 <h1> 元素呢?正如上一節所說的,有兩種方法,要么給 <h1> 加 id ,要么用無名函數 function 的形式,詳細見上一章。

2. 插入元素

接下來在 <body> 里新插入一個 <h1> 元素,代碼如下

var new_h1 = body.append("h1");
new_h1.text("Append new h1");

這里表示插入一個 <h1> 元素后,將其文字設為 Append new h1,結果為:

214

3. 刪除元素

刪除一個元素時,對於選擇的元素,使用 remove 即可,代碼如下:

new_h1.remove();

這是刪除 new_h1 變量中選擇的元素。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM