🧑‍💻개발/아카이브

[jQuery]배열, 반복문, html 편집 등 공부 내용 아카이브

무택 2023. 7. 10.

 

 

HTML

 

<body>
    <div class="container mt-3">
        <div class="card p-3">
            <span class="name">상품명</span>
            <span class="price">가격</span>
        </div>
    </div>



    <form class="container my-5 form-group">
        <p>상품선택</p>
        <select class="form-select mt-2">
            <option>모자</option>
            <option>셔츠</option>
            <option>바지</option>
        </select>
        <select class="form-select mt-2 form_hide">
        </select>
    </form>

    <div id="test">

    </div>

    <script>
        var cap = ['small', 'medium', 'large'];
        var obj = {name : 'kim', age : 29};

        $('.form-select').eq(0).on('click', function () {
            // eq(number)는 배열의 number번째 요소를 불러옴
            var value = $('.form-select').eq(0).val();
            // .val()은 선택요소의 value값을 가져옴
            var size_shirt_temple = `<option>95</option>
                <option>100</option>`;
            // ''사용시 줄바꿈하면 코드가 한번 끊겨서 실행 X, ``사용하면 줄바꿈해도 문제 없음
            var size_bot_temple = `<option>28</option>
                <option>30</option>`;

            if (value == '셔츠') {
                $('.form-select').eq(1).removeClass('form_hide');
                // html코드 추가 방법1 (html 리셋 후 append를 사용해 코드 추가)
                $('.form-select').eq(1).html(''); // 하단의 append를 제대로 사용하기 위해 html코드를 공백으로 수정
                // .html()은 선택요소의 내부에 ()안 코드 추가해주는 기능
                $('.form-select').eq(1).append(size_shirt_temple); //append사용 시 기존 코드들 없애는 과정이 필요
            }
            else if(value == '바지'){
                $('.form-select').eq(1).removeClass('form_hide');
                // html코드 추가 방법2 (html코드 전체 교체)
                $('.form-select').eq(1).html(size_bot_temple);
            }
            else if(value == '모자'){
                $('.form-select').eq(1).removeClass('form_hide');
                $('.form-select').eq(1).html('');
                // forEach는 배열에 쓸 수 있는 반복문 함수
                // a는 배열 안에 있는 요소, i는 배열의 갯수만큼 반복하면서 숫자 상승 0 > 1 > 2..
                cap.forEach(function(a, i){
                    $('.form-select').eq(1).append(`
                    <option>` + a + `</option>
                    `
                    );
                });
            }
        });
        for(var key in obj){
            // key는 배열이 갖고 있는 key값
            // console.log(key);
        }

        cap.forEach(function (a, i){
            console.log(a);
        });

        // arrow function 사용 시 this값이 바깥의 this를 불러옴
        // arrow function에서 파라미터가 하나면 ()생략 가능 [ex]function(a) {} >> a => {}
        cap.forEach((a, i) => {
            console.log(a);
        });
    </script>





    <div class="container mt-5">
        <ul class="list">
            <li class="tab-button" data-id="0">Products</li>
            <li class="tab-button orange" data-id="1">Information</li>
            <li class="tab-button" data-id="2">Shipping</li>
        </ul>
        <div class="tab-content">
            <p>상품설명입니다. Product</p>
        </div>
        <div class="tab-content show">
            <p>스펙설명입니다. Information</p>
        </div>
        <div class="tab-content">
            <p>배송정보입니다. Shipping</p>
        </div>
    </div>

    <script>
        var car2 = {
            name: '소나타',
            price: [50000, 3000, 40000]
        }
        document.querySelector('.price').innerHTML = car2.price[0]

        // 배열.키[넘버]를 실행하면 배열에서 '키' 이름을 가진 값의 '넘버'번째 value를 가져옴
        // console.log(car2['price']);

        // document.querySelector('.name').innerHTML = car2.name;
        // $('.name').text(car2.name);
        // $('.price').text(car2.price);
    </script>
</body>

 

사용된 문법

.eq(number) : 선택한 배열의 number번째 요소를 불러온다.

.val(...) : 선택한 요소의 value값을 가져온다.

변수에 값 할당 시 ""를 사용할 경우 줄 바꿈이 생기면 코드 진행이 끊기기 때문에 줄 바꿈을 이용할 경우 ``를 사용하기

.html(...) : 선택요소의 내부에 (...)안 코드를 교체해 준다.

.append(...) : 선택요소의 내부에 (...)안 코드를 추가해 준다.

.forEach(function(a, i){} : 배열에 쓸 수 있는 반복문 함수. a는 배열 안에 있는 요소, i는 배열의 개수만큼 반복하면서 숫자가 상승

arrow function : .forEach(function(a, i){}  는  .forEach((a, i) => {}와 같다. 파라미터가 하나라면 () 생략이 가능하다. [ex] function(a) {}  >>  a => {} arrow function에서는 this가 괄호 바깥의 값을 가져오기 때문에 주의해야 한다.

for(var key in ...) : 객체 반복문. key는 속성의 key값을 가져온다. ...는 객체명 자리.

배열의 value 가져오기 : [ex]car2.price[0]는 car2배열의 price라는 key값을 가진 속성의 0번째 value를 가져온다.