꼬반

JQUERY 동적 테이블 다루기. 본문

Work/JQUERY+AJAX

JQUERY 동적 테이블 다루기.

꼬마 반쪽이, 아들 태명입니다. 꼬반 2015.08.13 17:30

회사일 관련하여 개인 프로젝트 진행하는데 있어서 테이블을 동적으로 다루어야 되는 부분이 있어서 작성하였다.


그런데 동적으로 가로 행 TR 추가는 참고 사이트가 많이 있는데 이상하게 세로 열 TD 추가는 없어서 블로그 작성 하였다.


아래는 해당 페이지의 전체 코드.


최초에 테이블이 없는경우 입력받은 값으로 동적으로 생성 후 행과 열을 컨트롤박스에서 클릭하여 추가/삭제를 한다.


코드 자체는 크게 어렵지 않으니 보고 참고하면 될 듯.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<div class="row">
    <div class="col-sm-12">
        <div class="panel colourable">
            <div class="panel-heading">
                <span class="panel-title">IDC 2D Map</span>
            </div>
            <div class="panel-body">
                <div class="init-table">
                    <span>Make Map</span>
                    <input type="text" id="mRow" placeholder="가로 행">
                    <input type="text" id="mCol" placeholder="세로 열">
                    <button type="submit" class="tc-btn btn btn-default">Create</button>
                </div>
                <div class="control-box" style="display: none;">
                    <span class="btn mRow-add">가로 행 추가 <i class="fa fa-plus"></i></span>
                    <span class="btn mRow-del">가로 행 제거 <i class="fa fa-minus"></i></span>
                    <span class="btn mCol-add">세로 열 추가 <i class="fa fa-plus"></i></span>
                    <span class="btn mCol-del">세로 열 제거 <i class="fa fa-minus"></i></span>
                </div>
                <div class="show-map text-center" style="padding-top: 15px;"><span>Not exist map. first, create map.</span></div>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">
    init.push(function () {
        var tstart = "<table class='bordered idcMap' style='margin: auto;'><tbody>";
        var tend = "</tbody></table>"
        var tcontent = "";
        function makeTable() {
            var nrow = $("#mRow").val();
            var ncol = $("#mCol").val();
            for(var i=0; i<ncol; i++) {
                tcontent += "<tr class='bordered' style='height: 100px;'>";
                for(var j=0; j<nrow; j++) {
                    tcontent += "<td class='bordered' style='width: 100px;'></td>";
                }
                tcontent += "</tr>"
            }
            $(".show-map").html(tstart+tcontent+tend);
            $(".init-table").hide();
            $(".control-box").show();
        }
        $(".tc-btn").click(function() {
            makeTable();
        });
        $(".mRow-add").click(function() {
            var tRow = $('.idcMap > tbody > tr:last').clone();
            $('.idcMap > tbody:last').append(tRow);
        });
        $(".mRow-del").click(function() {
            $('.idcMap > tbody > tr:last').remove();
        });
        $(".mCol-add").click(function() {
            var trlength = $('.idcMap > tbody > tr').length;
            for(var i=0; i<trlength; i++) {
                var t = $('.idcMap > tbody > tr').eq(i);
                t.append('<td class="bordered" style="width: 100px;"></td>')
            }
        });
        $(".mCol-del").click(function() {
            var trlength = $('.idcMap > tbody > tr').length;
            for(var i=0; i<trlength; i++) {
                var t = $('.idcMap > tbody > tr').eq(i);
                t.children().last().remove();
            }
        });
    })
</script>
cs


'Work > JQUERY+AJAX' 카테고리의 다른 글

JQUERY 동적 테이블 다루기.  (0) 2015.08.13
JQUERY 즐겨찾기  (0) 2015.06.08
AJAX 즐겨찾기  (0) 2015.06.08
0 Comments
댓글쓰기 폼