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 |
댓글