39.7 어트리뷰트
39.7.1 어트리뷰트 노드와 attributes 프로퍼티
- HTML 요소는
여러 개의 어트리뷰트(속성)을 가질 수 있다
- 형식 정의 (어트리뷰트 이름 = "어트리뷰트 값"으로 나타냄)
<input id="user" type="text" value="ungmo2">
어트리뷰트 이름 = "어트리뷰트값"으로 나타냄
HTML
문서가 파싱 될 때 어티리뷰트는 어티리뷰트 노드로 변환 되어 요소 노드와 연결 된다.
- 하나의 어트리뷰트당 하나의 어트리뷰트 노드 생성한다. (즉, 위에 input은 3개의 어트리뷰트가 있으므로 3개의 어트리뷰트 노드가 생김)
- 이때 모든 어트리뷰트 노드의 참조는 유사 배열 객체이자 이터러블인
NamedNodeMap
객체에 담겨서 요소 노드의 attributes
프로퍼티에 저장한다.
39.7.2 HTML 어트리뷰트 조작
Element.prototype.getAttirbute(attributeName)
: 어트리뷰트 값을 참조
Element.prototype.setAttirbute(attributeName, attributeValue)
: 어트리뷰트 값을 변경
Element.prototype.hasAttirbute(attributeName)
: 어트리뷰트 존재하는지 확인
Element.prototype.removeAttirbute(attributeName)
: 특정 어트리뷰트 삭제
39.7.3 HTML 어트리뷰트 vs DOM 프로퍼티
- HTML어트리뷰트의 역할은 HTML요소의 초기상태를 지정하는 것
- DOM프로퍼티는 HTML어트리뷰트의 값을 초기값으로 가지고 있으며 참조와 변경 가능
- 요소 노드 객체에는 HTML 어트리뷰트에 대응 하는 DOM 프로퍼티가 존재한다
- 즉,
HTML
어트리뷰트는 중복 관리 되는 것처럼 보인다.
- 요소 노드의
attributes
프로퍼티에서 관리하는 어트리뷰트 노드
- 요소 노드의
DOM
프로퍼티
1. 어트리뷰트 노드
- HTML어트리뷰트로 지정한 HTML요소의 초기 상태는 어트리뷰트 노드에서 관리