2013-04-17 4 views
59

일부 장소에서 보았는데 .attr()이 jQuery에서 사용되었습니다. 일부 장소에서는 .prop()가 사용되었습니다.하지만 나는 을 SO와 Google에서 검색했다. 나는 매우 혼란 스럽다.이 두 시간의 정확한 차이점을 말해달라고 ..jQuery에서 prop()와 attr() 사이의 차이점과 attr() 및 prop()를 사용하는 경우

나는 다음 링크 jQuery attr vs. prop, there are a list of props? jQuery attr vs prop?

을 보았다하지만 사전에 answer.Please 도움말 와요 고마워요 도착하지 않았다.

downvote를 제공하기 전에 그 이유를 설명해 주시고 다음 게시물에서 수정하겠습니다.

답변

65

docs에서 속성과 특성의 차이는 특정 상황에서 중요 할 수있다. jQuery 1.6 이전에는 일부 속성을 검색 할 때 .attr() 메서드가 속성 값을 고려하기 때문에 일관성없는 동작이 발생할 수있었습니다. jQuery 1.6부터 .prop() 메소드는 속성 값을 명시 적으로 검색하는 방법을 제공하고 .attr()은 속성을 검색한다.

예 예

는 selectedIndex의, 태그 이름 노드 이름, nodeType에, 짓는 ownerDocument, defaultChecked 및 defaultSelected 검색된 상기 .prop() 메소드에 설정되어야한다. jQuery 1.6 이전에는 이러한 속성을 .attr() 메서드로 검색 할 수 있었지만 attr의 범위 내에 있지 않았습니다. 이것들은 상응하는 속성을 가지지 않고 속성 일뿐입니다.

당신은 HTML 요소에 대한 속성을 설정할 수 있습니다 코멘트

후 업데이트되었습니다. 소스 코드를 작성하는 동안 브라우저를 정의하고, 브라우저가 코드를 파싱하면 해당 DOM 노드가 만들어 지므로 객체가되므로 속성이 있습니다. 간단한 예를 들어이 될 수

.. 여기

<input type="test" value="test" id="test" /> 

유형, 값은 ID는 attributes.Once 브라우저는 정렬, 고도, 자동 초점, 기저 URI와 같은 다른 속성을 얻을 것이다, 그것을 렌더링하고,을 확인 등등.

link

+0

JSFiddle 테스트는 매우 유용합니다. 많은 분들께 감사드립니다. – QMaster

4

JQuery는 변화하는 라이브러리이며 때로는 정기적으로 향상됩니다. .attr()은 HTML 태그에서 속성을 가져 오는 데 사용되며 완벽하게 작동하지만 .prop()는 나중에 의미 론적으로 추가되었으며 'checked'및 'selected'와 같은 값없는 속성에서 더 잘 작동합니다.

JQuery의 최신 버전을 사용하는 경우 가능하면 .prop()를 사용해야합니다.

48

.attr() 변경에 대한 자세한 내용을 원하는 경우는 HTML 태그 속성.

.prop()은 DOM 트리 당 해당 HTML 태그의 속성을 변경합니다.

이 링크의 예에서 알 수 있습니다. 입력 필드는 "value"속성을 가질 수 있습니다. 이 값은 입력 한 기본값과 같습니다. 사용자가 입력 필드의 값을 변경하면 속성 "값"은 DOM 트리에서 변경되지만 원본 속성은 그대로 남습니다.

기본적으로 HTML 태그의 속성에 대한 기본값을 설정하려면 .attr() 함수를 사용하십시오. 입력 값, 확인란, 라디오 등 사용자가 값을 변경할 수있는 경우 .prop() 함수를 사용하여 최신 값을 가져옵니다.

http://jquery-howto.blogspot.com/2011/06/html-difference-between-attribute-and.html