JavaScript

JS | 이벤트 객체와 dataset

개발 공부 2023. 1. 3. 18:46

dataset을 활용하여 값을 받아올 수 있다. 

dataset 은 data-으로 시작하고 , 뒤에 오는 이름은 자유롭게 작성한다.

dataset은 ""문자열로 지정하고 객체도 지정할 수 있다.

 

json 문자열을 js객체로 형변환하여 출력한다.

<h3>태그의 dataset의 속성 - 태그의 저장소</h3>
    <!--data-으로 시작하고, 뒤에 오는 이름은 자유롭게 작성-->
    <ul class="list">
        <li><a href="#" data-user-info='{"id":"1","age":"32"}'>아이린</a></li>
        <li><a href="#" data-user-info='{"id":"2","age":"27"}'>조이</a></li>
        <li><a href="#" data-user-info='{"id":"3","age":"28"}'>슬기</a></li>
        <li><a href="#" data-user-info='{"id":"4","age":"28"}'>웬디</a></li>
        <li><a href="#" data-user-info='{"id":"5","age":"24"}'>예리</a></li>
    </ul>
    결과 : <div class="result"></div>
 var list = document.querySelector('.list');
        var re = document.querySelector('.result');
        list.onclick = function(){
            //1.
            event.preventDefault();
            //2.
            if(event.target.tagName != 'A')return;
            //3.data- 으로 만들어진 속성은 태그에서 찾아 쓸 수 있습니다.
            // console.dir(event.target);
            // console.dir(event.target.dataset);
            // console.dir(event.target.dataset.userInfo);

            var data = event.target.dataset.userInfo;

            var result = JSON.parse(data); //err
            console.log(result);

            re.innerHTML = JSON.stringify(result);
        }