본문 바로가기
개발/자바스크립트

별점 표시 및 입력

by ^..^v 2023. 1. 20.
728x90
반응형

jQuery와 Font-awesome을 이용해서 별점 표시 및 입력 기능을 구현한 코드입니다. 

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <script src="https://code.jquery.com/jquery-3.6.3.js" integrity="sha256-nQLuAZGRRcILA+6dMBOvcRh5Pe310sBpanc6+QBmyVM=" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" integrity="sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf/nwasF0nqhPay5w/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>
    <!-- 별점을 출력하는 영역 -->
    <div id="score"></div>

    <input type="button" id="btn" value="확인" />

    <script>
        $(function() {
            // score 만큼 별을 출력
            function showStar(score) {
                const MAX_SCORE = 5;
                let star = '';
                for (let i = 1; i <= score; i++) {
                    star += `<i class="fa-solid fa-star" no="${i}""></i>`;
                } 
                for (let i = score + 1; i <= MAX_SCORE; i++) {
                    star += `<i class="fa-regular fa-star" no="${i}"></i>`;
                }
                $('#score').html(star);
            }

            // 로딩 시 매개변수로 지정된 개수만큼 별을 출력
            showStar(3);    

            // 별점 선택 - 선택한 개수만큼 별을 출력
            $('#score').on('click', 'i.fa-star', function() {
                showStar(Number($(this).attr('no')));
            });

            // 선택된 별 개수를 가져오는 방법
            $('#btn').on('click', function() {
                let selectedStar = $('.fa-solid').length;
                console.log(selectedStar);
            });
        });
    </script>    
</body>
</html>
728x90
반응형

'개발 > 자바스크립트' 카테고리의 다른 글

JavaScript 기본 3  (0) 2023.01.27
JavaScript 기본 2  (0) 2023.01.26
JavaScript 기본 1  (0) 2023.01.25

댓글