Element.setAttribute()

지정된 요소의 속성 값을 설정합니다. 속성이 이미 있으면 값은 업데이트됩니다. 속성이 없다면 지정된 이름과 값으로 새 속성이 추가됩니다.

속성의 현재 값을 얻으려면 getAttribute() (en-US)를 사용하고, 속성을 제거하려면 removeAttribute()를 호출하세요.

구문

js
setAttribute(name, value)

매개변수

name

값을 설정할 속성의 이름을 지정하는 문자열입니다. 속성 이름은 HTML 문서의 HTML 요소에서 setAttribute()가 호출될 때 모두 자동으로 소문자로 변환됩니다.

value

속성에 할당할 값이 포함된 문자열입니다. 지정된 문자열이 아닌 값은 자동으로 문자열로 변환됩니다.

불리언 속성은 값이 요소에 존재하는 경우 true로 간주됩니다. 선행 또는 후행 공백 없이 값을 빈 문자열("")로 설정하거나 속성의 이름으로 설정해야 합니다. 실제 예제는 아래를 참조하세요.

지정된 value가 문자열로 변환되기 때문에 null을 지정한다고 해서 반드시 예상대로 작동하지 않습니다. 속성을 제거하거나 해당 값을 null로 설정하는 대신 속성 값을 문자열 "null"로 설정합니다. 속성을 제거하려면 removeAttribute()를 호출하세요.

반환 값

없음 (undefined).

예외

InvalidCharacterError DOMException (en-US)

지정된 속성 name에 속성 이름에 유효하지 않은 문자가 하나 이상 포함되어 있습니다.

예제

다음 예제에서 setAttribute()<button>에 속성을 설정합니다.

HTML

html
<button>Hello World</button>

JavaScript

js
const button = document.querySelector("button");

button.setAttribute("name", "helloButton");
button.setAttribute("disabled", "");

이 예제는 다음 두 가지를 보여줍니다.

  • 위의 setAttribute()에 대한 첫 번째 호출은 name 속성의 값을 "helloButton"으로 변경하는 것을 보여줍니다. 브라우저의 페이지 검사기(Chrome, Edge, Firefox, Safari)를 사용하여 이를 확인할 수 있습니다.
  • disabled와 같은 불리언 속성의 값을 설정하려면 아무 값으로든 설정할 수 있습니다. 빈 문자열 또는 속성의 이름이 권장되는 값입니다. 중요한 것은 속성이 존재하는 경우 실제 값에 관계없이 해당 값이 참으로 간주된다는 것입니다. 속성이 없다는 것은 해당 값이 false임을 의미합니다. disabled 속성의 값을 빈 문자열("")로 설정하면 disabledtrue로 설정하여 버튼이 비활성화됩니다.

요소의 특성을 처리하는 DOM 메서드입니다.

네임스페이스 인식이 아닌, 가장 일반적으로 사용되는 메서드 네임스페이스 인식 변형 (DOM Level 2) Attr 노드를 직접 처리하는 DOM Level 1 메서드 (거의 사용되지 않음) Attr 노드를 직접 처리하는 DOM Level 2 네임스페이스 인식 메서드 (거의 사용되지 않음)
setAttribute (DOM 1) setAttributeNS (en-US) setAttributeNode (en-US) setAttributeNodeNS (en-US)
getAttribute (en-US) (DOM 1) getAttributeNS (en-US) getAttributeNode (en-US) getAttributeNodeNS (en-US)
hasAttribute (en-US) (DOM 2) hasAttributeNS (en-US) - -
removeAttribute (DOM 1) removeAttributeNS (en-US) removeAttributeNode (en-US) -

명세서

Specification
DOM Standard
# ref-for-dom-element-setattribute①

브라우저 호환성

BCD tables only load in the browser

Gecko 참고

setAttribute()를 사용하여 특정 속성, 특히 XUL의 value를 수정하는 것은 속성이 기본값을 지정하기 때문에 일관되지 않게 작동합니다. 현재 값에 액세스하거나 수정하려면 속성을 사용해야 합니다. 예를 들어 Element.setAttribute() 대신 Element.value를 사용합니다.