2017-01-26 4 views
0

페이지에 두 개의 열이 있습니다. 왼쪽에는 checkstyle jstree가 있고 오른쪽에는 datatables를 사용하는 테이블이 있습니다. 시작시 테이블 행과 트리가 모두로드됩니다. 트리에서 노드를 선택하고 행을 숨길 때 행을 표시하고 선택을 취소하고 클래스를 사용하고 싶습니다. 난 datatables 및 클래스를 설정의 모든 행을 반복하지만, 내가 그것을 필터링 할 수있는 문제가 있습니다. 이것은 아래에서 사용하고 있지만 작동하지 않는 코드입니다. 나는 테이블 행에 대한 ID를 얻을 수 없다.JSTree with Datatables

table.rows().iterator('row', function (context, index) { 
       var tableNode = $(this.row(index).node()); 
       tableNode.removeClass('VisibleRow').removeClass('HiddenRow').addClass('HiddenRow'); 
      var id = tableNode.id; 
      var treeNode = data.instance.get_node(id); 

      if(treeNode != undefined){ 
       var currentId = '#row-' + node.id; 
       var rowInTable = table.row(currentId).node(); 
       $(rowInTable).removeClass("HiddenRow"); 
       $(rowInTable).addClass("VisibleRow"); 
      } 

}); 

더 좋은 방법이 있는지 알려주세요. 감사합니다

+0

당신이 당신의 문제를 해결 했나 -

또한 데모를 확인? –

+0

감사합니다.이 일을했습니다. 수정할 수 있었고 효과가있었습니다. –

답변

0

나는 당신이 아래 발췌 문장과 함께 할 수 있다고 생각합니다. 행 반복은 jQuery를 기반으로하므로 DataTables 관련 로직이 없습니다. Fiddle Demo

var $tableRows = $('#yourTableId').find('tr'); 

$('#yourTreeContainer').on('select_node.jstree', function(e, data) { 

    $tableRows.each(function() { 
     if (this.id === '#row-' + data.node.id) { 
      $(this).removeClass('HiddenRow'); 
     } else { 
      $(this).addClass('HiddenRow'); 
     } 
    }); 

});