2013-03-21 2 views
-4

속성 및 특성은 IE 8 이하에서 유사하게 처리됩니다.JavaScript에서 속성 및 속성의 의미가 동일합니까?

동일한 의미입니까?

+0

HTML 요소는 속성과 특성을 모두 가질 수도 있습니다. 속성은 javascript 객체에서 도트 (.) 연산자를 사용하여 액세스 할 수 있지만 속성은 DOM에 정의 된 getters 및 setter를 사용하여 액세스 할 수 있습니다. 질문을 참조하십시오. 질문을 편집했습니다. :) – Nilesh

+3

귀하의 질문을 원래 양식으로 롤백했습니다. 자신의 답변을 게시하려면 아래의 * 답변 *으로 게시하십시오. 귀하의 질문에 대한 편집이 아닙니다. 또한 누군가가 대답 한 후에는 질문의 의미 나 목적을 편집하는 것이 올바르지 않습니다. –

+1

이 질문에 대한 답변은 잘못되었습니다. 그리고 자바 스크립트에 오해를 불러 일으킬 수 있습니다. 토론 및 논증을 포함하여 전체 스레드를 철저히 읽어야합니다. 질문은 원래의 포스터에 의해 답변을 얻었습니다. 대답은 근본적으로 결함이 있습니다. 다른 사람들의 대답에 대한 그의 코멘트에서 ** 속성은 점 (.)을 사용하여 액세스 할 수 있습니다.) 연산자는 javascript 객체를 사용하지만 속성은 DOM에 정의 된 getters 및 setter를 사용하여 액세스 할 수 있습니다 ** ** – Radiotrib

답변

0

@all 그들이 동일하다고 생각하는 @all :

HTML 요소의 속성 및 특성이 동일하지 않습니다.

보기의 DOM 관점에서

: var에 ELEM = document.getElementById를 : 속성은 private 변수와 속성보기의 자바 스크립트 지점에서 HTML 요소

(구현)의 childNode에 저장 NamedNodeMap입니다에 저장되어 있습니다 ("신분증");

elem.prop = somevalue; // 속성에 액세스하기

elem.getAttribute ("attributeName"); // 속성에 액세스 : getters elem.setAttribute ("attributeName", "value"); // 액세스하는 속성 : setter

구현에 대한 자세한 내용은 내 다른 대답을 참조하십시오.

+0

Safari/Chrome 등에서 HTML4 문서를 검사하여 사용자가 정의한 사용자 지정 특성은 elem.attributeName으로 액세스 할 수 없습니다. – Nilesh

+0

원래 어설 션은 : _ ** HTML 요소는 속성과 속성을 모두 가질 수 있습니다. 속성은 javascript 객체와 함께 도트 (.) 연산자를 사용하여 액세스 할 수 있지만 속성은 DOM **에 정의 된 getters 및 setter를 사용하여 액세스 할 수 있습니다. Joeframbach에 대한 내 의견에 대한 귀하의 논평을 참조하십시오. 점 표기법을 사용하여 두 속성 및 특성에 액세스 할 수 있다고 주장합니다. 자신이 선택한 DOM 객체를 사용하여 이것이 사실인지 알 수 있도록 실제 예제를 제공하십시오. – Radiotrib

+0

귀하의 주장에 대한 응답으로 작성된 예제 "getters 및 setter를 사용하여 액세스 할 수있는 속성"... http://jsfiddle.net/radiotrib/p8Wep/5/ ... – Radiotrib

0

What is the difference between attribute and property?은 ... 의미에 대해 매우 토론을 가지고 있으며, 다른 언어는

+0

제공하신 링크가 내가 공유하고 싶은 줄이 아닙니다. 내 수정 된 질문 참조 :) – Nilesh

+1

원래 질문에 답한 내용이 보이지 않습니다. – Radiotrib

+0

질문을 원래 양식으로 다시 편집하고 OP에 다시 묻지 마십시오. 즉 답변에 대한 제안이 있습니다. 외부 리소스에 대한 링크가 아닌 여기에 살점을 시도하십시오. 그건 원래의 의도가 바뀌고 있다면 질문에 그 노력을 기울일 수도 있고 싶지 않을 수도 있습니다 ... –

-1

속성 및 속성은 DOM에서 동일하지 않습니다 ... 용어의 사용합니다. 그러나, IE 8 이하에서 비슷한 취급.

브라우저 간 호환성 문제가 발생했습니다.

문제 : IE8 용 HTML4/JavaScript에서 맞춤 속성이 속성으로 액세스됩니다. HTML을 Chrome, Safari 및 IE9와 호환되도록 설정해야합니다.

해결 방법 : 요소를 반복하여 사용자 지정 특성을 확인하고 속성으로 추가 할 수 있습니다.

샘플 코드 :

VAR propertyName 형식 = obj.attributes [인덱스] .nodeName; // (속성 이름은 대소 문자를 구분하지 않음) obj [propertyName] = value; // (obj.customAttribute의 구현 확인)

팁 : IE 8 이하와 달리 IE 9 이상은이 문제를 해결하고 속성 및 속성을 다르게 처리합니다.

+0

이것은 기술적으로 부족합니다. 속성 이름을 제외하고 실제 속성의 색인을 미리 알아야하기 때문에'var propertyName = obj.attributes [index] .nodeName;'은 부적절합니다. 명확한 설명을 위해 http의 마지막 줄을보십시오. : //jsfiddle.net/radiotrib/p8Wep/8/ - 'thing'이라는 속성을 설정하는 올바른 표기법은'obj.attributes.thing.value = value;'이어야합니다 - 순서대로 속성 속성을 반복하지 않아야합니다 속성을 찾으려면. 설명을 위의 링크에서 나머지 jsFiddle를보십시오. – Radiotrib

관련 문제