83 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: 587d7fa6367417b2b2512bc3
 | |
| title: 用 D3 選擇一組元素
 | |
| challengeType: 6
 | |
| forumTopicId: 301490
 | |
| dashedName: select-a-group-of-elements-with-d3
 | |
| ---
 | |
| 
 | |
| # --description--
 | |
| 
 | |
| `selectAll()` 方法選擇一組元素。 它以 HTML 節點數組的形式返回該文本中所有匹配所輸入字符串的對象。 以下是一個選擇文本中所有錨標籤的例子:
 | |
| 
 | |
| ```js
 | |
| const anchors = d3.selectAll("a");
 | |
| ```
 | |
| 
 | |
| 像 `select()` 方法一樣,`selectAll()` 也支持鏈式調用,你可以在它之後調用其他方法。
 | |
| 
 | |
| # --instructions--
 | |
| 
 | |
| 選擇所有的 `li` 標籤,通過 `.text()` 方法將它們的文本改爲 `list item`。
 | |
| 
 | |
| # --hints--
 | |
| 
 | |
| 頁面上應該有 3 個 `li` 元素,每個元素的文本內容應爲 `list item`。 大寫和間距應完全匹配。
 | |
| 
 | |
| ```js
 | |
| assert(
 | |
|   $('li')
 | |
|     .text()
 | |
|     .match(/list item/g).length == 3
 | |
| );
 | |
| ```
 | |
| 
 | |
| 應該能訪問 `d3` 的對象。
 | |
| 
 | |
| ```js
 | |
| assert(code.match(/d3/g));
 | |
| ```
 | |
| 
 | |
| 應該使用 `selectAll` 方法。
 | |
| 
 | |
| ```js
 | |
| assert(code.match(/\.selectAll/g));
 | |
| ```
 | |
| 
 | |
| # --seed--
 | |
| 
 | |
| ## --seed-contents--
 | |
| 
 | |
| ```html
 | |
| <body>
 | |
|   <ul>
 | |
|     <li>Example</li>
 | |
|     <li>Example</li>
 | |
|     <li>Example</li>
 | |
|   </ul>
 | |
|   <script>
 | |
|     // Add your code below this line
 | |
| 
 | |
| 
 | |
| 
 | |
|     // Add your code above this line
 | |
|   </script>
 | |
| </body>
 | |
| ```
 | |
| 
 | |
| # --solutions--
 | |
| 
 | |
| ```html
 | |
| <body>
 | |
|   <ul>
 | |
|     <li>Example</li>
 | |
|     <li>Example</li>
 | |
|     <li>Example</li>
 | |
|   </ul>
 | |
|   <script>
 | |
|     d3.selectAll("li")
 | |
|       .text("list item")
 | |
|   </script>
 | |
| </body>
 | |
| ```
 |