Study/JavaScript

[jQuery] 테이블에서 동적으로 데이터 검색해 테이블 조회

momong'-' 2020. 12. 29. 21:29

jQuery-ui.js 이용

 

 

jsp

<div>
  <input type="text" id="searchInput" placeholder="이름/나이/전화번호 검색"/> 
  <table id="personInfoTable">
    <thead>
      <tr>
         <th>No.</th>
         <th>이름</th>
         <th>나이</th>
         <th>전화번호</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>1</td>
        <td class="search">홍길동</td>
        <td class="search">30</td>
        <td class="search">010-1234-1234</td>
      </tr>
      <tr>
        <td>2</td>
        <td class="search">임꺽정</td>
        <td class="search">25</td>
        <td class="search">010-2222-2222</td>
      </tr>
      <tr>
        <td>3</td>
        <td class="search">이몽룡</td>
        <td class="search">17</td>
        <td class="search">010-8888-1234</td>
      </tr>
    </tbody>
  </table>
</div>

js

$("#searchInput").on('change keyup paste', function() { 
  var currentVal = $.trim($(this).val());
  $('#personInfoTable > tr').hide();
  var temp = $('#personInfoTable > tr > td.search:contains("' + currentVal + '")');
  $(temp).parent().show(); 
});

 

js 설명

change로 input값이 변경될때 이벤트 발생

keyup로 키보드로 입력을 할때마다 동적으로 테이블을 보여준다.

paste로 붙여넣기를 했을 경우도 이벤트 발생

 

$.trim(): input text 양쪽 공백 제거

$().hide(): 테이블 아래 데이터를 모두 숨긴다음 show로 원하는 컬럼만 보여준다.

 

특정 컬럼 검색 방법

td에 classs="search"를 추가했다. 그리고js에서 td.search로 검색하여 search가 적혀 있는 td만 검색되도록 했다.

저렇게 No.만 빼고 search를 넣으면 search가 적힌 컬럼만 검색이된다.

 

 

 

 

 

도움이 되셨다면 아래 ♡ 눌러주세요 (로그인 필요 없습니당)