本人的個人部落格首頁為: http://www.ourd3js.com/ ,csdn部落格首頁為:http://blog.csdn.net/lzhlzz/。轉載請注明出處,謝謝。
在D3.js中,選擇元素的函數有兩個:select 和 selectAll 。 先說明一下它們的差別:
- select 是選擇所有指定元素的第一個
- selectAll 是選擇指定元素的全部(以用于後面同時操作)
來看一個具體的例子,現有如下代碼:
<html>
<head>
<meta charset="utf-8">
<title>select,append,exit</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大小的标題。如果要完成兩種選擇任務:選擇第一個h1 和 同時選擇三個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變量選中的元素上色,加上這一句,會發現結果為:

如此,我們可以證明我們選中的是第一個元素。
如果換上代碼:
all_h1.style("color","blue");
會發現三行文字都變成了藍色。
那麼如果想選擇第二個h1呢?正如上一節所說的,有兩種方法,要麼給h1加id,要麼用function的形式,詳細見上一節。
接下來在body裡新插入一個h1。
var new_h1 = body.append("h1");
new_h1.text("Append new h1");
這裡表示在body裡新插入一個h1标簽,插入之後傳回新插入的元素,再設定文字為Append new h1。
删除一個元素時,對于選擇的元素使用remove,如:
new_h1.remove();
這是删除new_h1變量中選擇的元素。