loading

제이쿼리(jQuery)는 태그(DOM) 객체에 오브젝트를 저장해서 사용할 수도 있다.

변수가 아닌 태그에 직접 오브젝트 넣어서 사용하는 방법을 예제를 통해서 알아보자.

 

▶ 오브젝트 저장하기

$.data(DOM객체, 키값, 정의한 오브젝트);

사용법은 $.data() 메서드를 사용하는데 첫 번째 매개변수 자리에는 DOM 객체가 들어가고

두 번째 자리에는 키값인데 이 키값은 따로 정해져 있는 건 아니다 사용자 마음대로 정할 수 있다.

 

말 그대로 키값에 '바보' 이렇게 넣어도 된다. 키 값은 자기 자신이 편할 문자를 넣으면 된다.

단, 오브젝트 값을 불러올 땐 저장한 키 값으로 불러와야 한다.

그리고 마지막 세 번째 자리에는 정의한 오브젝트를 넣으면 된다.

 

 

▶ 오브젝트 불러오기

$.data(DOM객체, 키값);

사용법은 $.data(DOM객체, 키값); 이렇게 적으면 정의한 오브젝트 값이 반환이 된다.

자 쉽고 빠르게 이해하려면 바로 테스트를 진행해야 된다.

 

예제를 통해서 저장하고, 불러오는 방법을 알아보자.

 

예제)

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  <title>JS Bin</title>
  <script type="text/javascript">
        $(document).ready(function(){
                // DOM 객체를 변수에 저장
                var DomA = $('h1')[1],
                    DomB = $('p')[0],
                    DomC = $('div')[2];


                //저장하고 싶은 오브젝트 정의
                var objA = {
                        name:'준수',
                        age:15,
                        sex:'남자'
                    }

                var objB = {
                        name:'아영',
                        age:18,
                        sex:'여자'
                    }

                var objC = {
                        name:'준영',
                        age:20,
                        sex:'남자'
                    }    


                // 태그에다가(DOM 객체에) 오브젝트 값을 저장하기
                $.data(DomA, 'myDataKeyA', objA);
                $.data(DomB, 'myDataKeyB', objB);
                $.data(DomC, 'myDataKeyC', objC);


                // 저장한 오브젝트 값 가져오기
                console.log($.data(DomA, 'myDataKeyA').name); // 준수
                console.log($.data(DomA, 'myDataKeyA').sex); // 남자

                console.log($.data(DomB, 'myDataKeyB').name); // 아영

                console.log($.data(DomC, 'myDataKeyC').name); // 준영        
        });      
  </script>
</head>
<body>

    <h1>첫번 째-1</h1>
    <h1>첫번 째-2</h1> <!-- 이 태그에 오브젝트 값 저장 -1 -->
    <h1>첫번 째-3</h1>

    <hr>

    <p>두번 째-1</p> <!-- 이 태그에 오브젝트 값 저장 -2 -->
    <p>두번 째-2</p>
    <p>두번 째-3</p>

    <hr>
    
    <div>세번 째-1</div>
    <div>세번 째-2</div>
    <div>세번 째-3</div>  <!-- 이 태그에 오브젝트 값 저장 -3 -->

</body>
</html>

 

 

☞ 결과 화면

console.log(DomA, $.data(DomA, 'myDataKeyA')); // DOM 에 저장한 값 확인

 

DomA 오브젝트 결과화면

 

 ☞ 소스분석 

  1. 변수 DomA<h1> 태그 요소를 담았다.
  2. $.data() 이 제이쿼리 함수로 DOM(DomA)objA 저장한다. $.data(태그요소(DomA), 사용자가 정한 키값('myDataKeyA'), 저장할 객체(objA))
  3. $.data(domA, 'myDataKeyA', objA); 이렇게 명령어를 사용하면 domA 태그에 objA 객체가 담긴다.

 

결론적으로 결과화면 이미지를 보면

DomA 에 태그요소에 객체가 담겼는지 확인해 보려면

$. data(DomA, 'myDataKeyA') 확인해보면 위 이미지처럼 결과화면을 확인 할 수 있다.

 

 

이렇게 저장하고 불러와서 객체를 사용할 수가 있는데...

자바스크립트의  브라우저 Cookie 사용법과 비슷하다...

 

만약 저 객체에서 준수라는 이름만 데이터를 뽑고 싶다면

$. data(DomA, 'myDataKeyA'). name 

 

이렇게 사용하면 '준수'라는 이름만 뽑혀서 사용할 수 있다.

그냥 오브젝트처럼 사용법처럼 하면 된다.

 

반응형

+ Recent posts