메뉴 건너뛰기

조회 수 1211 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

저번에 맹글었던거에서 옵션을 추가하는 기능을 추가해보았다.


이 예제에서 꽤 많은 jQuery 셀렉터와 함수들을 사용한것 같은데 소스를 이해해 보면서 jQuery 사용법을 살살 익혀봐도 좋을것 같다.




만들어질 것은 다음과 같다. (직접 클릭해 보기바람)
옵션명 항목명 필수항목 가격 재고 옵션추가

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
     
    <script type="text/javascript">
        $(document).ready(function(){
            // 옵션추가 버튼 클릭시
            $("#addItemBtn").click(function(){
                // item 의 최대번호 구하기
                var lastItemNo = $("#example tr:last").attr("class").replace("item", "");
 
                var newitem = $("#example tr:eq(1)").clone();
                newitem.removeClass();
                newitem.find("td:eq(0)").attr("rowspan", "1");
                newitem.addClass("item"+(parseInt(lastItemNo)+1));
 
                $("#example").append(newitem);
            });
 
 
            // 항목추가 버튼 클릭시
            $(".addBtn").live("click", function(){
                var clickedRow = $(this).parent().parent();
                var cls = clickedRow.attr("class");
 
                // tr 복사해서 마지막에 추가
                var newrow = clickedRow.clone();
                newrow.find("td:eq(0)").remove();
                newrow.insertAfter($("#example ."+cls+":last"));
 
                // rowspan 조정
                resizeRowspan(cls);
            });
             
             
            // 삭제버튼 클릭시
            $(".delBtn").live("click", function(){
                var clickedRow = $(this).parent().parent();
                var cls = clickedRow.attr("class");
                 
                // 각 항목의 첫번째 row를 삭제한 경우 다음 row에 td 하나를 추가해 준다.
                if( clickedRow.find("td:eq(0)").attr("rowspan") ){
                    if( clickedRow.next().hasClass(cls) ){
                        clickedRow.next().prepend(clickedRow.find("td:eq(0)"));
                    }
                }
 
                clickedRow.remove();
 
                // rowspan 조정
                resizeRowspan(cls);
            });
 
            // cls : rowspan 을 조정할 class ex) item1, item2, ...
            function resizeRowspan(cls){
                var rowspan = $("."+cls).length;
                $("."+cls+":first td:eq(0)").attr("rowspan", rowspan);
            }
        });
    </script>
</head>
 
<body>
<button id="addItemBtn">옵션추가</button>
<table id="example" border="1px">
        <tr>
            <th>옵션명</th>
            <th>항목명</th>
            <th>필수항목</th>
            <th>가격</th>
            <th>재고</th>
            <th>옵션추가</th>
        </tr>
        <tr class="item1">
            <td><input type="text" /><button class="addBtn">항목추가</button></td>
            <td><input type="text" /></td>
            <td><input type="checkbox" /></td>
            <td><input type="text" /></td>
            <td><input type="text" /></td>
            <td><button class="delBtn">삭제</button></td>
        </tr>
        <tr class="item2">
            <td><input type="text" /><button class="addBtn">항목추가</button></td>
            <td><input type="text" /></td>
            <td><input type="checkbox" /></td>
            <td><input type="text" /></td>
            <td><input type="text" /></td>
            <td><button class="delBtn">삭제</button></td>
        </tr>
        <tr class="item3">
            <td><input type="text" /><button class="addBtn">항목추가</button></td>
            <td><input type="text" /></td>
            <td><input type="checkbox" /></td>
            <td><input type="text" /></td>
            <td><input type="text" /></td>
            <td><button class="delBtn">삭제</button></td>
        </tr>
        <tr class="item4">
            <td><input type="text" /><button class="addBtn">항목추가</button></td>
            <td><input type="text" /></td>
            <td><input type="checkbox" /></td>
            <td><input type="text" /></td>
            <td><input type="text" /></td>
            <td><button class="delBtn">삭제</button></td>
        </tr>
</table>
</body>
</html> 


  1. No Image 10Jan
    by 조쉬
    2019/01/10 Views 1211 

    jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2

  2. No Image 10Jan
    by
    2019/01/10 Views 1081 

    jQuery 로 해보는 체크박스(checkbox) 전체선택, 선택해제 예제

  3. No Image 10Jan
    by
    2019/01/10 Views 1022 

    jQuery 로 원하는 갯수만큼 checkbox 선택하기

  4. No Image 10Jan
    by
    2019/01/10 Views 1329 

    jQuery 로 탭메뉴 보였다 안보였다 맹글기

  5. No Image 10Jan
    by
    2019/01/10 Views 938 

    jQuery 로 탭메뉴

  6. No Image 07Nov
    by
    2018/11/07 Views 1571 

    스크롤 최하단 자동 포커스(auto scroll to bottom of page with jquery)

  7. No Image 07Nov
    by
    2018/11/07 Views 81420 

    jquery timer, javascript countdown (타이머 예제)

  8. No Image 07Nov
    by
    2018/11/07 Views 1296 

    Hide pager if bxslider has only 1 slide

  9. Magnific popup conflict with "jquery.nicescroll"

  10. No Image 07Nov
    by
    2018/11/07 Views 1273 

    터치 디바이스 분기처리

  11. No Image 07Nov
    by
    2018/11/07 Views 2017 

    중복 없는 랜덤

  12. No Image 07Nov
    by
    2018/11/07 Views 1388 

    3D Perspective Carousel with jQuery and CSS3 - CSSSlider

  13. No Image 07Nov
    by
    2018/11/07 Views 1401 

    iframe height auto resize

  14. No Image 07Nov
    by
    2018/11/07 Views 1297 

    getElementsByClassName 을 IE8 이하에서 동작하게 하는 코드

  15. No Image 07Nov
    by
    2018/11/07 Views 1393 

    비활성화 된 라디오버튼 클릭 시 경고창 생성

  16. No Image 28Sep
    by
    2018/09/28 Views 3610 

    특정영역 제외하고 body 클릭

  17. No Image 28Sep
    by
    2018/09/28 Views 1884 

    따욤표 중복으로 출력하기

  18. No Image 27Sep
    by
    2018/09/27 Views 2551 

    [jQuery] 셀렉트박스에서 특정 옵션 선택시 레이어 나타내기

  19. No Image 06Sep
    by
    2018/09/06 Views 2146 

    [jQuery] split, join 으로 공백제거 하기

  20. No Image 06Sep
    by
    2018/09/06 Views 1815 

    [jQuery] input 박스에 maxlength 만큼 입력했을 때 자동으로 다음 박스로 이동하기

Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved