javascript 에서 attribute 와 property 의 차이 에 대한 상세 한 설명
hello
위의 div 요소 의 HTML 코드 에는 class, id, 그리고 사용자 정의 gameid 가 있 습 니 다. 이러한 특성 들 은 attributes 에 저장 되 어 있 습 니 다. 다음 과 같은 형식 입 니 다.
[ class="box", id="box", gameid="880" ]
attribute 노드 에 이렇게 접근 할 수 있 습 니 다:
var elem = document.getElementById( 'box' );
console.log( elem.attributes[0].name ); // class
console.log( elem.attributes[0].value ); // box
그러나 IE6 - 7 은 많은 것 을 attributes 에 저장 하고 위의 접근 방법 과 표준 브 라 우 저의 반환 결 과 는 다르다.보통 attribute 노드 를 가 져 오 려 면 getAttribute 방법 을 사용 합 니 다.
console.log( elem.getAttribute('gameid') ); // 880
attribute 노드 를 설정 하려 면 setAttribute 방법 을 사용 하고 삭제 하려 면 removeAttribute 를 사용 하 십시오.
elem.setAttribute('testAttr', 'testVal');
console.log( elem.removeAttribute('gameid') ); // undefined
attributes 는 attribute 노드 를 추가 하거나 삭제 하면 서 동적 으로 업 데 이 트 됩 니 다.property 는 하나의 속성 입 니 다. DOM 요 소 를 일반적인 Object 대상 으로 본다 면 property 는 이름 값 쌍 (name = "value") 으로 Object 에 저 장 된 속성 입 니 다.property 를 추가 하고 삭제 하 는 것 도 훨씬 간단 합 니 다. 일반적인 대상 과 다 를 바 가 없습니다.
elem.gameid = 880; //
console.log( elem.gameid ) //
delete elem.gameid //
attribute 와 property 가 쉽게 혼 합 된 이 유 는 많은 attribute 노드 에 대응 하 는 property 속성 이 있 기 때 문 입 니 다. 예 를 들 어 위의 div 요소 의 id 와 class 는 attribute 이자 대응 하 는 property 도 있 습 니 다. 어떤 방법 을 사용 하 든 방문 하고 수정 할 수 있 습 니 다.
console.log( elem.getAttribute('id') ); // box
console.log( elem.id ); // box
elem.id = 'hello';
console.log( elem.getAttribute('id') ); // hello
그러나 사용자 정의 attribute 노드 나 사용자 정의 property 에 대해 서 는 상관 이 없습니다.
console.log( elem.getAttribute('gameid') ); // 880
console.log( elem.gameid ); // undefined
elem.areaid = '900';
console.log( elem.getAttribute('areaid') ) // null
IE6 - 7 의 경우 attribute 와 property 를 구분 하지 않 았 습 니 다.
console.log( elem.getAttribute('gameid') ); // 880
console.log( elem.gameid ); // 880
elem.areaid = '900';
console.log( elem.getAttribute('areaid') ) // 900
많은 초보 친구 들 이 이 구덩이 에 쉽게 빠 질 것 이다.DOM 요 소 는 기본 적 으로 흔히 볼 수 있 는 attribute 노드 에 대응 하 는 property 속성 이 있 습 니 다. 비교적 특수 한 것 은 Boolean 형식의 property 입 니 다. 예 를 들 어 폼 요소 와 같 습 니 다.
var radio = document.getElementById( 'radio' );
console.log( radio.getAttribute('checked') ); // checked
console.log( radio.checked ); // true
이러한 특수 한 attribute 노드 에 대해 서 는 이 노드 만 존재 하고 해당 하 는 property 의 값 은 true 입 니 다. 예 를 들 어:
var radio = document.getElementById( 'radio' );
console.log( radio.getAttribute('checked') ); // anything
console.log( radio.checked ); // true
마지막 으로 attribute 와 property 를 잘 구분 하기 위해 attribute 노드 는 모두 HTML 코드 에서 볼 수 있 고 property 는 일반적인 이름 값 대 속성 이 라 고 요약 할 수 있 습 니 다.
// gameid id attribute
// id property
hello
// areaid property
elem.areaid = 900;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.