본문 바로가기
Web/jQuery

[jQuery] hover 이벤트를 적용한 성적 계산하기 예제

by EricJeong 2019. 7. 11.

 

순번 이름 국어 영어 수학 총점
1 홍길동 90 80 90  
2 일지매 95 70 95  
3 성춘향 80 70 90  
4 이몽룡 90 85 70  
<!DOCTYPE html>
<html>
<head>
        <script src="https://code.jquery.com/jquery-3.4.1.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(function(){
                // 기본 CSS 설정
               $("table").css("width","600px").css("height", "300px").css("font-size", "20px").css("text-align", "center");
               $("#title").css("background","#000080").css("color","white");
                // 계산하지 않는 속성(순번, 이름, 총점)의 개수를 지정한다.
               const NOT_CALCULATE_ATTRIBUTE = 3;

               // Title을 제외한 tr만 검색한다.
               $("table tr:gt(0)").each(function(){
                    var sum = 0;
                    $(this).find("td:gt(1):lt("+($(this).find("td").length-NOT_CALCULATE_ATTRIBUTE)+")").each(function(){
                        sum += $(this).html()*1;
                        console.log($(this).html());
                    });
                    $(this).find("td:last").text(sum);
               });

               // 타이틀을 제외한 tr에 색을 지정해준다.
               $("tr:gt(0)").each(function(){
                   if($(this).children(0).html()%2 == 1){
                       $(this).css("background","HOTPINK").attr("col1", "HOTPINK").attr("col2","yellow").attr("cor", 0);
                   }else{
                       $(this).css("background","#cc0033").attr("col1", "#cc0033").attr("col2","yellow").attr("cor", 0);
                   }

                   // attr로 각 색을 먼저 저장해 둔 후
                   // hover 이벤트가 발생하면 저장해 둔 색으로 변경한다.
                   // mouseout 이벤트가 발생하면 원래 색으로 돌려보낸다.
                   if(!($(this).attr("id") == "title")){
                        $(this).hover(function(){
                                $(this).css("background", $(this).attr("col2"));
                        });
                        $(this).mouseout(function(){
                            $(this).css("background", $(this).attr("col1"));
                        })
                    }
               });
            });
        </script>
</head>
<body>
<table border="1">
    <tr id="title">
        <td>순번</td><td>이름</td>
        <td>국어</td><td>영어</td><td>수학</td><td>총점</td>
    </tr>
    <tr>
        <td>1</td><td>홍길동</td><td>90</td><td>80</td><td>90</td><td>&nbsp;</td>
    </tr>
    <tr>
        <td>2</td><td>일지매</td><td>95</td><td>70</td><td>95</td><td>&nbsp;</td>
    </tr>
    <tr>
        <td>3</td><td>성춘향</td><td>80</td><td>70</td><td>90</td><td>&nbsp;</td>
    </tr>
    <tr>
        <td>4</td><td>이몽룡</td><td>90</td><td>85</td><td>70</td><td>&nbsp;</td>
    </tr>
</table>
</body>

</html>

'Web > jQuery' 카테고리의 다른 글

[jQuery] CSS Selectors 표  (0) 2019.07.03
[jQuery] jQuery 선택자  (0) 2019.07.02
[jQuery] jQuery 설치 방법  (0) 2019.07.02

댓글