2016-07-14 1 views
0

데이터 테이블을 만들고 검색 작업을 수행하기 전에 데이터의 행 인덱스를 가져올 수 있습니다.검색 후 데이터 테이블에 행 인덱스를 얻을 수 없습니다.

dataArray=[ 
    [1, "Name1"],  
    [2, "Name2"], , 
    [3, "Name23"], 
]; 


var table = $('#tblName').DataTable({ 
      scrollY:  '40vh', 
      "scrollX": true, 
      scrollCollapse: true, 
      paging:   false, 
      responsive:true, 
      data: dataArray, 
      }); 
$('#tblName tbody').on('click', 'tr', function() { 
    if ($(this).hasClass('selected1')) { 
    } 
    else 
    { 
     $('#tblName tbody tr ').each( function() { 
      if ($(this).hasClass('selected1')) { 
      $(this).removeClass('selected1'); 
      } 
     }); 
     $(this).addClass('selected1'); 
    } 
}); 

은 내가 dataArray의 값을 변경하는 행 인덱스를 얻을 싶어요. 다음은 필터 입력 텍스트 searchName와 데이터 테이블 후, 올바른 이전 행 인덱스를 얻을 수없는 1

$('#searchName').on('keyup', function() { 
    table 
    .columns(1) 
    .search(this.value) 
    .draw(); 
}); 

$('#tblName tbody').on('click', 'tr', function() { 
    $('#tblName tbody tr ').each( function() { 
     if ($(this).hasClass('selected1')) { 
      var rowindex=$(this).closest('tr').index(); 
      var dataWareHouse = table.row(this).columns(1).data(); 
      var selectedName = dataArray[0][rowindex]; 
      console.log(selectedName); 
     } 
    }); 
}); 

열에 dataArray와 키워드의 검색과 데이터 테이블을 필터링 할 입력 텍스트 searchName입니다. searchName 예 입력 들어 :

2

시일을는 Name2Name23의 이름 만 2 행 하지만, i가 첫 번째 행을 클릭하면이 Name1 표시를 보여줄 것이다. 올바른 반환 데이터는 Name2

+0

당신이 행 인덱스를 얻기 위해 API를 사용하여 시도 해 봤나 등? 'var rowindex = table.row (this) .index()'? –

답변

2

이어야합니다. 글쎄, 검색 할 때 DOM 인덱스를 사용할 수 없습니다. 일부 데이터는 필터링으로 인해 표시되지 않기 때문에 그러나 DataTable에 올바른 얻을 API 방법을 제공 indices, data,

$('#tblName tbody').on('click', 'tr', function() { 
    $('#tblName tbody tr ').each( function() { 
     if ($(this).hasClass('selected1')) { 
      var rowindex = table.row(this).index(); 
      var rowData = table.row(this).data(); 
      var selectedName = table.row(this)[0]; 
      var anotherWayToGetName = table.cell(rowIndex, 0).data(); 
      console.log(rowIndex, rowData, selectedName, anotherWayToGeName); 
     } 
    }); 
}); 
+0

정말 고마워요 !! 그것은 일이다! 페이지 매김시에도 효과적입니다! –

관련 문제