- D3를 이용한 DOM Element Select
- DOM Elements 추가하기
- Elements 변경(Modifying)하기
- Selection - Append - Modifying Elements 관련 페이지 보기
- Selection method
- select() method
- HTML element의 Tag (Tag 예: div, h1, p, span 등)
- HTML element의 Class name
- HTML element의 Id
- selectAll() method
- selectAll() 메서드는 HTML 문서에서 여러 elements를 선택하는 데 사용된다.
- select 메소드는 일치하는 첫 번째 element를 선택하지만 selectAll 메소드는 특정 선택자 문자열과 일치하는 모든 요소를 선택한다.
- 일치하는 항목이 없으면 빈 선택 항목을 반환한다.
- Tag를 사용한 Selection
- d3의 select() method를 사용하여 특정한 Tag의 HTML element를 선택할 수 있다. 아래 예는 "div" Tag element를 선택하는 예 이다.
- CSS Class name를 사용한 Selection
- CSS 클래스를 사용하여 스타일이 지정된 HTML element는 아래 예와 같이 class name을 사용하여 선택할 수 있다.
- ID를 사용한 Selection
- HTML 페이지의 모든 element에는 고유 한 ID가 있다. element의 고유 Id를 사용하여 아래와 같이 element를 Selection 할 수 있다.
D3를 사용하면 HTML 문서에서 DOM element를 처리(추가/수정/제거)할 수 있다. DOM element 처리를 위하여는 먼저 특정 Element 또는 Element의 그룹을 선택한 다음 다양한 D3 메서드를 사용하여 해당 요소를 처리(추가/수정/제거) 한다.
이 페이지에서는 D3.js select()와 selectAll() 메서드를 사용하여 DOM 요소를 선택하는 방법과 DOM 요소를 처리하는 방법에 대해 소개한다.
Selection method는 select()와 selectAll() method 가 있다.
select() 메서드는 CSS Selectors를 기반으로 HTML 요소를 선택한다. CSS Selectors에서는 아래 세 가지 방법으로 HTML 요소를 정의하고 액세스 할 수 있습니다.
select() 메서드에서 추가/수정/제거 메서드(append(), html(), text(), attr(), style(), classed() 등)을 연결하여 사용할 수 있다. 이 경우 추가/수정/제거 메서드는 일치하는 elements에 영향을준다.
참고자료: CSS Selectors
selectAll() 메서드에서 추가/수정/제거 메서드(append(), html(), text(), attr(), style(), classed() 등)을 연결하여 사용할 수 있다. 이 경우 추가/수정/제거 메서드는 일치하는 모든 elements에 영향을준다.
d3.select(“div”)
HTML 문서에서 select() method를 사용하여 "div" Tag를 선택하는 예
위 HTML 문서를 복사하여 select-tag.html 파일을 만들고 실행(더블 클릭)하면 웹 브라우저에 alert 창이 열리고 "Blue sky." 문자열이 출력된다. 창에서 "확인"을 클릭하면 웹 브라우저에 "Blue sky." 문자열이 출력된다.
d3.select(“.<class name>”)
HTML 문서에서 select() method를 사용하여 Class를 선택하는 예
위 HTML 문서를 복사하여 select-class.html 파일을 만들고 실행(더블 클릭)하면 웹 브라우저에 alert 창이 열리고 "Blue sky." 문자열이 출력된다. 창에서 "확인"을 클릭하면 웹 브라우저에 "Blue sky." 문자열이 출력된다.
d3.select(“#<id of an element>”)
HTML 문서에서 select() method를 사용하여 Id를 선택하는 예
위 HTML 문서를 복사하여 select-id.html 파일을 만들고 실행(더블 클릭)하면 웹 브라우저에 alert 창이 열리고 "Blue sky." 문자열이 출력된다. 창에서 "확인"을 클릭하면 웹 브라우저에 "Blue sky." 문자열이 출력된다.
- append() Method
- 기존 HTML 문서에 새 요소를 추가하기 위하여는 D3의 Selection method를 사용하여 새 요소를 추가할 위치를 선택하고, append(), text() 등 Element를 추가하는 Method를 사용한다.
- append() Method는 현재 선택된 Element의 Last child로 새 Element를 추가한다.
- Chrome의 "개발자 도구"를 이용하기
- append() Method의 동작을 이해하기 위하여 Chrome의 "개발자 도구"(Debugging Tool)를 사용한다.
- 위 그림의 좌측 창은 HTML 문서를 Chrome 브라우저에서 브라우징한 결과이다. append() method를 사용하여 HTML Text를 추가한 결과 "Appending HTML" 아래에 "First line"과 "Second line"이 출력되었다.
- 우측 창은 Chrome의 "개발자 도구"의 "Elements" 창이다. Chrome 주소창 우측에 있는 "3개의 점 -> 개발자 도구 -> Elements"를 선택하면 "개발자 도구"의 "Elements" 창이 열린다. "Elements" 창에서 HTML 문서의 Elements(Javascript가 실행되어 추가된 Elements을 포함하여)를 확인할 수 있다.
- "Elements" 창에서 JS Script에 의하여 추가된 <div> Tag와 HTML 문을 확인할 수 있다.
- text() Method
- text()() Method
- append() Method는 현재 선택된 Element의 Last child로 새 Element를 추가한다.
기존 HTML 문서에 append() method를 사용하여 HTML Text를 추가하는 예
위 HTML 문서를 복사하여 select-append.html 파일을 만들고 실행(더블 클릭)하면 웹 브라우저에 "Appending HTML" 문자열이 출력되고, 다음 줄에 "First line", 그 다음 줄에 "Second line" 문자열이 출력된다.
append() Method의 동작을 설명하기 위한 "개발자 도구" 실행 예
기존 HTML 문서에 새 Text를 추가하기 위한 Method 이다. 기존 HTML 문서에 새 Text를 추가하기위 하여는 D3의 Selection method를 사용하여 새 Text를 추가할 위치를 선택하고 text() Method를 사용하여 추가한다.
기존 HTML 문서에 append() method를 사용하여 HTML Text를 추가하는 예
위 HTML 문서를 복사하여 select-append-text.html 파일을 만들고 실행(더블 클릭)하면 웹 브라우저에 "Blue sky." 문자열이 출력된다.
- html() Method
- html() Method를 사용하여 Paragraphs를 첨부하고 <span> tag를 사용하여 속성을 변경하는 예이다.
- attr() Method
- attr() Method를 사용하여 선택한 element의 속성(attribute)을 추가하거나 업데이트하는 예 이다.
- style() Method
- style() Method를 사용하여 선택한 element의 속성(property)을 변경하는 예 이다.
D3.js는 선택한 Elements의 내용과 스타일을 수정하기 위해 html(), attr(), style()과 같은 다양한 Methods를 제공한다.
위 HTML 문서를 복사하여 select-modify-html.html 파일을 만들고 실행(더블 클릭)하면 웹 브라우저에 출력되는 문자열 중 "blue" 가 blue color로 출력된다.
위 HTML 문서를 복사하여 select-modify-attr.html 파일을 만들고 실행(더블 클릭)하면 웹 브라우저에 "The sky is blue today." 가 blue color로 출력된다.
위 HTML 문서를 복사하여 select-modify-style.html 파일을 만들고 실행(더블 클릭)하면 웹 브라우저에 "Blue sky." 가 blue color로 출력된다.