jquery table tr 기준 sort하기

devkhun·2020년 5월 9일
0

Javascript + jQuery

목록 보기
2/3
	$(".sortBy").on("click", function(){
            //$(".sortBy").removeClass("ASC");
            //$(".sortBy").removeClass("DESC");

            $("#sortField").val($(this).attr('id'));
            if($(this).hasClass('ASC') == true){
                $("#orderBy").val('DESC');
                $(this).addClass('DESC');
                $(this).removeClass('ASC');
            }else{
                $("#orderBy").val('ASC');
                $(this).addClass('ASC');
                $(this).removeClass('DESC');
            }

            var dataNm = $(this).attr("id");
            var orderBy = $("#orderBy").val();
            console.log(dataNm, orderBy);

            listSort($(this), dataNm, orderBy);
        });
	function listSort($targetObj, dataNm, orderBy) {
            $("#tableList").html(
                $("#tableList tr").sort(function(a, b){
                    var checkNum = $(b).attr(dataNm) - $(a).attr(dataNm);
                    if (isNaN(checkNum)) {
                        var $a = $(a).attr(dataNm).toLowerCase();
                        var $b = $(b).attr(dataNm).toLowerCase();
                        // 문자 정렬
                        if (orderBy == "ASC") {
                            return $a < $b ? -1 : $a > $b ? 1 : 0;
                        } else {
                            return $a > $b ? -1 : $a < $b ? 1 : 0;
                        }
                    } else {
                        // 숫자 정렬
                        if (orderBy == "ASC") {
                            return $(a).attr(dataNm) - $(b).attr(dataNm);
                        } else {
                            return $(b).attr(dataNm) - $(a).attr(dataNm);
                        }
                    }
                })
            );
        }
profile
가늘고 길게 간다

0개의 댓글