봉봉의 개인 블로그

2017-11-14(prop , attr) 본문

입사후 공부한내용

2017-11-14(prop , attr)

봉봉이네 2017. 11. 14. 11:02

.attr() 과 .prop() 의 차이


JQuery를 사용하다 보면 태그들의 속성값을 정의하거나 가져오기 위해 .attr() 함수를 사용하는 경우가 많을 것이다.

그런데 jquery 1.6 이후 부터 .attr() 함수가 용도에 따라 .attr() 과 prop() 으로 분리 되었다.

attr() 과 prop() 의 차이는 무엇인가.


attr() : html의 속성(attribute)을 다룬다.

prop() : javascript 프로퍼티 (property)를 다룬다.


예시1.

1
2
3
4
5
6
<a id="get_comment" href="#comment">코멘트</a>
<script>
var $comment = $('#get_comment');
alert($comment.attr('href'));
alert($comment.prop('href'))
</script>
cs

이런식의 코드에서 alert 창에 뜨는 것은 무엇인가.

4번째 줄의 alert의 값은 "#comments"
5번째 줄의 alert의 값은 "http://test.com/path/page#comment"

가 된다.


예시2.

1
2
3
4
5
6
<checkbox id="agree" type="checkbox" checked />
<script>
var $checkbox = $('#agree');
alert($checkbox.attr('checked'));
alert($checkbox.prop('checked'));
</script>
cs

이런식의 코드에서 alert 창에 뜨는 것은 무엇인가.

4번째 줄의 alert의 값은 "checked"
5번째 줄의 alert의 값은 "true"

가 된다.


결론은 html에 쓴 속성값을 다루고 싶을때는 attr() 함수를 사용하고,
그 외에 javascript의 프로퍼티 값을 사용할 경우는 prop() 함수를 사용하면 된다.


Comments