요소 속성에 포함된 정보에 접근하고 싶다.
브라우저가 DOM에서 정의된 표준 속성으로 속성을 정의했다면 요소에서 바로 속성에 접근할 수 있다.
<input tye="check" id="field" checked="checked" value="test" />
...
var field = document.getElementById("field");
alert(field.checked); //true
alert(field.value); //test
alert(field.type); //text
표준이 아닌 속성 또는 특정 브라우저에서는 아직 지원하지 않는 표준 속성은 getAttribute
메소드를 사용해서 접근해야 한다.
<div id="elem" class="test" role="article" data-index="1">
testing
</div>
...
var elem = document.getElementById("elem");
var index = elem.getAttribute("data-index");
alert(index); // 1
var role = elem.getAttribute("role");
alert(role); //article
getAttribute
메서드는 표준 속성과 비표준 속성에 동등하게 작동하기 때문에 모든 속성에 접근할 때는 이 메서드를 사용하는 습관을 들이는 편이 좋다.
속성이 없을 경우 메서드는 null
값이나 빈 문자열("")을 반환한다. hasAttribute
메서드를 사용하면 속성이 있는지 확인할 수 있다.
if(elem.hasAttribute(role)){
var role = elem.getAttribute('role');
...
}