복붙노트

[JQUERY] 테이블이 컬럼에 걸쳐 세포가 포함되어있는 경우 jQuery를 사용하여 열 인덱스 찾기

JQUERY

테이블이 컬럼에 걸쳐 세포가 포함되어있는 경우 jQuery를 사용하여 열 인덱스 찾기

해결법


  1. 1.여기에 'noncolspan'지수를 산출 할 수있는 플러그인입니다.

    여기에 'noncolspan'지수를 산출 할 수있는 플러그인입니다.

    $(document).ready(
            function()
            {
            console.log($('#example2').getNonColSpanIndex()); //logs 4
            console.log($('#example1').getNonColSpanIndex()); //logs 2
        }
    
    );
    
    $.fn.getNonColSpanIndex = function() {
        if(! $(this).is('td') && ! $(this).is('th'))
            return -1;
    
        var allCells = this.parent('tr').children();
        var normalIndex = allCells.index(this);
        var nonColSpanIndex = 0;
    
        allCells.each(
            function(i, item)
            {
                if(i == normalIndex)
                    return false;
    
                var colspan = $(this).attr('colspan');
                colspan = colspan ? parseInt(colspan) : 1;
                nonColSpanIndex += colspan;
            }
        );
    
        return nonColSpanIndex;
    };
    

  2. 2.광산 SolutionYogi의 매우 유사 뺀 플러그인의 생성. 그것은 더 이상 나에게 조금했다 ...하지만 그래서 여기있다 그것을 자랑스럽게 여전히 해요 :)

    광산 SolutionYogi의 매우 유사 뺀 플러그인의 생성. 그것은 더 이상 나에게 조금했다 ...하지만 그래서 여기있다 그것을 자랑스럽게 여전히 해요 :)

    cell = $("#example2");
    var example2ColumnIndex2 = 0;
    
    cell.parent("tr").children().each(function () {
        if(cell.get(0) != this){
            var colIncrementor = $(this).attr("colspan");
            colIncrementor = colIncrementor ? colIncrementor : 1;
            example2ColumnIndex2 += parseInt(colIncrementor);
        }
    });
    console.log(example2ColumnIndex2);
    

  3. 3.더 간결한 대답은 여기에 있습니다 : jQuery를 사용하여 열 병합을 고려 TD의 인덱스를 가져옵니다

    더 간결한 대답은 여기에 있습니다 : jQuery를 사용하여 열 병합을 고려 TD의 인덱스를 가져옵니다

    한마디로 :

    var index = 0;
    $("#example2").prevAll("td").each(function() {
        index += this.colSpan;
    });
    console.log(index);
    

  4. 4.당신이 뭔가를 할 수 있습니다 :

    당신이 뭔가를 할 수 있습니다 :

     var index = 0;
     cell.parent('tr').children().each( 
         function(idx,node) { 
               if ($(node).attr('colspan')) {
                 index+=parseInt($(node).attr('colspan'),10); 
               } else {
                  index++;
               }
    
             return !(node === cell[0]);
         }
     );
     console.log(index);
    

    아마 플러그인이나 확장을 통해 그것을 할 말이 것입니다.


  5. 5.약간 수정 된 버전은 여기에 있습니다 : http://jsfiddle.net/Lijo/uGKHB/13/

    약간 수정 된 버전은 여기에 있습니다 : http://jsfiddle.net/Lijo/uGKHB/13/

    //INDEX
    alert ( GetNonColSpanIndex ('Type'));
    
    function GetNonColSpanIndex(referenceHeaderCellValue) {
    
        var selectedCell = $("th").filter(function (i) {
            return ($.trim($(this).html()  )) == referenceHeaderCellValue;
    
        });
    
        alert(selectedCell.html());
    
        var allCells = $(selectedCell).parent('tr').children();
        var normalIndex = allCells.index($(selectedCell));
        var nonColSpanIndex = 0;
    
        allCells.each(
        function (i, item) {
            if (i == normalIndex)
                return false;
    
            var colspan = $(selectedCell).attr('colspan');
            colspan = colspan ? parseInt(colspan) : 1;
            nonColSpanIndex += colspan;
        }
        );
    
        return nonColSpanIndex;
    };
    

  6. from https://stackoverflow.com/questions/1166452/finding-column-index-using-jquery-when-table-contains-column-spanning-cells by cc-by-sa and MIT license