본문 바로가기

Webstoryboy

Category

Explanation

REFERENCE/JQUERY

[jQuery] .prop()

.prop()

선택한 JavaScript 요소의 속성 값을 설정하거나 반환합니다. .attr()는 HTML의 속성을 설정하고 .prop()는 JavaScript 속성을 설정하는데에 차이점이 있습니다. 이 두개의 메소드는 취급하는 정보가 다릅니다. .attr()는 HTML의 속성(attribute)을 .prop()는 JavaScript의 프로파티(property)를 취급하는 메소드입니다.


.prop()

.prop() 메서드는 JavaScript 요소의 속성 값을 설정하거나 반환합니다..

문법

$("선택자").prop("속성");
$("선택자").prop("속성", "속성값");
$("선택자").prop({"속성":"속성값", "속성":"속성값", .... });
$("선택자").prop("속성", 함수);

정의

  • .prop() 메서드는 선택한 요소의 속성 값을 가져옵니다.
  • .prop() 메서드는 선택한 요소의 속성 값을 변경합니다.
  • .prop() 메서드는 선택한 요소의 여러개 속성 값을 변경합니다.
  • .prop() 메서드는 선택한 요소의 속성과 함수를 설정합니다.

Sample1

.attr을 이용하여 속성 값을 알아냅니다. 3개의 메서드가 속성을 가져오지만 결과값은 틀립니다. 이 점이 .attr(), .prop(), .is() 메서드의 차이점입니다.

jquery
$(".choice1 .btn1").on("click", function(e){
    e.preventDefault();
    $( ".list1 input" ).change(function() {
      var $input = $( this );
      $(".list1 .desc").html( ".attr( \"checked\" ) : " + $input.attr("checked"))
    }).change();
});
$(".choice1 .btn2").on("click", function(e){
    e.preventDefault();
    $( ".list1 input" ).change(function() {
      var $input = $( this );
      $(".list1 .desc").html( ".prop( \"checked\" ) : " + $input.prop("checked"))
    }).change();
});
$(".choice1 .btn3").on("click", function(e){
    e.preventDefault();
    $( ".list1 input" ).change(function() {
      var $input = $( this );
      $(".list1 .desc").html( ".is( \"checked\" ) : " + $input.is(":checked"))
    }).change();
});
html
<h3>속성(Attributes)</h3>
<div class="list1">
    <input id="check1" type="checkbox" checked="checked">
    <label for="check1">체크</label>
    <p class="desc"></p>
</div>
Total
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>jQuery Sample</title>
    <style>
        li {list-style: none;}
        .select:before {padding: 4px 6px 2px 6px; font-size: 90%; color: #3d90b7; white-space: nowrap; background-color: #e7f6fd; border-radius: 4px;border: 1px dashed #3d90b7;}
        .rLine {padding: 4px 4px 2px 10px; font-size: 90%; color: #c7254e; white-space: nowrap; background-color: #f9f2f4; border-radius: 4px; border: 1px dashed #a51a3d;}
        a {border: 1px solid #5f6368; padding: 7px 20px 5px 20px; display: inline-block; border-radius: 20px; text-decoration: none;}
    </style>
</head>
<body>
   
    <h3>탐색(Traversing)</h3>
    <div class="list1">
        <ul>
            <li><img src="https://tistory1.daumcdn.net/tistory/2933724/skin/images/hover01.jpg" alt="img1" width="150" /></li>
        </ul>
        <p class="desc"></p>
    </div>
    
    <div class="choice1">
        <a href="#" class="off1">리셋</a>
        <a href="#" class="btn1">클릭하면 이미지의 주소 값을 가져옵니다.</a>
        <a href="#" class="btn2">클릭하면 이미지의 alt 값을 가져옵니다.</a>
        <a href="#" class="btn3">클릭하면 이미지의 width 값을 가져옵니다.</a>
    </div>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(".choice1 .off1").on("click", function(e){
            e.preventDefault();
            $(".list1 p").text("");
        });
        $(".choice1 .btn1").on("click", function(e){
            e.preventDefault();
            $(".list1 .desc").text( $(".list1 img").attr("src") );
        });
        $(".choice1 .btn2").on("click", function(e){
            e.preventDefault();
            $(".list1 .desc").text( $(".list1 img").attr("alt") );
        });
        $(".choice1 .btn3").on("click", function(e){
            e.preventDefault();
            $(".list1 .desc").text( $(".list1 img").attr("width") );
        });
    </script>
</body>
</html>

호환성(Compatibility)

메서드 버전 크롬 아이콘 파이어폭스 아이콘 사파리 아이콘 오페라 아이콘 네이버 웨일 익스플로러6 아이콘6 익스플로러7 아이콘7 익스플로러8 아이콘8 익스플로러9 아이콘9 익스플로러10 아이콘10 익스플로러11 아이콘11 엣지 아이콘 안드로이드 아이콘 ios 아이콘
attr() jQeury 1.x 버전 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능
jQeury 2.x 버전 사용가능 사용가능 사용가능 사용가능 사용가능 사용안됨 사용안됨 사용안됨 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능
jQeury 3.x 버전 사용가능 사용가능 사용가능 사용가능 사용가능 사용안됨 사용안됨 사용안됨 사용가능 사용가능 사용가능 사용가능 사용가능 사용가능

Tag

AD

comments