.attr(): HTML의 속성을 다룬다
.prop(): JavaScript의 프로퍼티(속성)를 다룬다
* 자바스크립트에서 프로퍼티란 {키: 값} 을 의미
<checkbox id="agree" type="checkbox" checked />
var $checkbox = $('#agree');
alert($checkbox.attr('checked'));
alert($checkbvox.prop('checked'));
출력 결과
attr(): "checked"
→ HTML에서의 checked의 속성을 표시(checked)
prop(): true
→ JavaScript에서의 checked의 프로퍼티를 표시(checked: true)
<a id="get_comment" href="#comments">코멘트</a>
var $comment = $('#get_comments');
alert($comment.attr('href'));
alert($comment.prop('href'));
출력 결과
attr(): "#comments"
prop(): "http://test.com/path/page#comments"
HTML 상에서의 속성 값은 #comments와 같은 형태로(HTML에 작성된 대로) 출력되었지만
JavaScript 상에서의 속성 값은 전체 주소값이 출력되었다
attr()는 string 형태로 값을 가져오지만
prop은 다양한 데이터 형태(bool, int 등등)를 가질 수 있다
따라서 HTML에서의 속성명을 가져오고 싶으면 attr(),
JavaScript에서의 속성값을 가져오고 싶으면 prop을 사용하면 된다
추가로 검색해보니 attr보다 prop 함수의 처리 속도가 더 빠르다고 한다
참고: https://electronic-moongchi.tistory.com/41
'Programing > HTML, CSS, JS' 카테고리의 다른 글
[JavaScript / jQuery] 웹페이지에 실시간으로 연월일 날짜, 시간 띄우기 (0) | 2023.12.10 |
---|---|
[CSS] input 요소 focus 시 외곽선 스타일 변경이 안 되는 문제 (0) | 2023.12.09 |
[CSS] 드롭다운 메뉴바 구현하기 (0) | 2023.12.06 |
[JavaScript / jQuery] 이미지 슬라이더(캐러셀) 구현하기 (0) | 2023.12.03 |
width: 100% 인데도 가로 스크롤바가 생기는 문제 (0) | 2023.11.28 |