키워드 및 드롭 다운이있는 특정 열로 필터링 시도

릭 D

키워드를 사용하여 검색 할 수있는 테이블이 있지만 필터링의 일부가 될 드롭 다운 상자도 포함하고 싶습니다. 아래는 내 코드입니다. 드롭 다운에서 상태를 선택하여 상태를 필터링 할 수 있지만 키워드를 입력하자마자 모든 상태로 되돌아갑니다. 먼저 드롭 파종을 사용하여 주별로 필터링 한 다음 해당 주에 대해서만 키워드를 사용하고 싶습니다.

HTML

<!DOCTYPE html>

<html lang="en">
<html>
<head>
<title>States</title>
<meta name="viewport" content="width=device-width">
</head>
<body>
<div id="container">

<div id="Header">

</div>
<div id="MainBody">

<h2>Search</h2>
<input type="text" id="myInputJob" onkeyup="myFunction()" placeholder="" title="Type Here">

  <select id="StateDropdown" oninput="filterTable()">
  <option>All</option>
  <option>CA</option>
  <option>WA</option>
</select>

<div id="TableJob">
<table id="myTableJob">
<tr class="header">
<th>City</th>
<th>State</th>
<th>Keyword1</th>
<th>Keyword2</th></tr>
<tr><td>San Francisco</td><td>CA</td><td>Blue</td><td>Red</td></tr>
<tr><td>San Diego</td><td>CA</td><td>Blue</td><td>Red</td></tr>
<tr><td>Seattle</td><td>WA</td><td>Blue</td><td>Red</td></tr>
<tr><td>Salt Lake City</td><td>UT</td><td>Blue</td><td>Red</td></tr>
<tr><td>Las Vegas</td><td>NV</td><td>Blue</td><td>Red</td></tr>
</table>

</div>
</div>

</body>
</html>

JS

<script>

function myFunction(event) {
var input, filter, table, tr, td, i;
input = document.getElementById("myInputJob");
filter = input.value.toUpperCase();
table = document.getElementById("myTableJob");
 tr = table.getElementsByTagName("tr");

 for (i = 0; i < tr.length; i++) {
table.style.display = ""
if (document.getElementById('myInputJob').value == '') { 
table.style.display = "";

} else {
table.style.display = "";

}
    td_1 = tr[i].getElementsByTagName("td")[2];
    td_2 = tr[i].getElementsByTagName("td")[3];
    td_3 = tr[i].getElementsByTagName("td")[1];
    
    if (td_1 || td_2) {
   if (td_1.innerHTML.toUpperCase().indexOf(filter) == 0 || td_2.innerHTML.toUpperCase().indexOf(filter) == 0 && td_3.innerHTML == document.getElementById("StateDropdown").innerHTML) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    } 
  } 
}

function filterTable() {

  let dropdown, table, rows, cells, state, filter;
  dropdown = document.getElementById("StateDropdown");
  table = document.getElementById("myTableJob");
  rows = table.getElementsByTagName("tr");
  filter = dropdown.value;

  
  for (let row of rows) { 
    cells = row.getElementsByTagName("td");
    state = cells[1] || null; 
    if (filter === "All" || !state || (filter === state.textContent)) {
      row.style.display = ""; 
    }
    else {
      row.style.display = "none"; 
    }
  }
}

</script>

나는 거기에 AND 조건을 넣어야 할 것 같습니다.

if (td_1.innerHTML.toUpperCase (). indexOf (filter) == 0 || td_2.innerHTML.toUpperCase (). indexOf (filter) == 0 && td_3.innerHTML == document.getElementById ( "StateDropdown"). innerHTML ) { 하지만 작동하지 않습니다. 정말 고마워!

twoK

쉬운 방법은 다음과 같습니다.

두 함수 모두에서 해당 변수를 사용할 수 있도록이 두 함수를 선언 var tr하고 table외부에서 사용할 수 있습니다.

var table = document.getElementById("myTableJob");
var tr=table.querySelectorAll('tr'); 

당신이 상태를 검색 할 때 그것은 필터링 trs하고 unwonted를로 설정합니다 display none. 그래서 state search 후에 tr는 마지막에 보이는 사람들 만 저장 합니다.function filterTable()

tr = table.querySelectorAll('tr:not([style="display: none;"])'); 

이제 함수 myFunction(event)는 이미 필터링 된 (필터링 된 경우) 만 사용합니다 trs.

BTW 귀하의 Keyword2 검색이 전혀 작동하지 않지만 그것은 질문이 아닙니다.

var table = document.getElementById("myTableJob");
var tr = table.querySelectorAll('tr'); 

function myFunction(event) {
var input, filter, td, i;
input = document.getElementById("myInputJob");
filter = input.value.toUpperCase();



 for (i = 0; i < tr.length; i++) {
table.style.display = ""
if (document.getElementById('myInputJob').value == '') { 
table.style.display = "";

} else {
table.style.display = "";

}
    td_1 = tr[i].getElementsByTagName("td")[2];
    td_2 = tr[i].getElementsByTagName("td")[3];
    td_3 = tr[i].getElementsByTagName("td")[1];
    
    if (td_1 || td_2) {
   if (td_1.innerHTML.toUpperCase().indexOf(filter) == 0 || td_2.innerHTML.toUpperCase().indexOf(filter) == 0 && td_3.innerHTML == document.getElementById("StateDropdown").innerHTML) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    } 
  } 
}

function filterTable() {

  let dropdown, rows, cells, state, filter;
  dropdown = document.getElementById("StateDropdown");
  rows = table.getElementsByTagName("tr");
  filter = dropdown.value;

  
  for (let row of rows) { 
    cells = row.getElementsByTagName("td");
    state = cells[1] || null; 
    if (filter === "All" || !state || (filter === state.textContent)) {
      row.style.display = ""; 
    }
    else {
      row.style.display = "none"; 
    }
  }
tr = table.querySelectorAll('tr:not([style="display: none;"])');  
}
<div id="container">

  <div id="Header">

  </div>
  <div id="MainBody">

    <h2>Search</h2>
    <input type="text" id="myInputJob" onkeyup="myFunction()" placeholder="" title="Type Here">

    <select id="StateDropdown" oninput="filterTable()">
      <option>All</option>
      <option>CA</option>
      <option>WA</option>
    </select>

    <div id="TableJob">
      <table id="myTableJob">
        <tr class="header">
          <th>City</th>
          <th>State</th>
          <th>Keyword1</th>
          <th>Keyword2</th>
        </tr>
        <tr>
          <td>San Francisco</td>
          <td>CA</td>
          <td>Gray</td>
          <td>Red</td>
        </tr>
        <tr>
          <td>San Diego</td>
          <td>CA</td>
          <td>Blue</td>
          <td>Red</td>
        </tr>
        <tr>
          <td>Seattle</td>
          <td>WA</td>
          <td>Blue</td>
          <td>Red</td>
        </tr>
        <tr>
          <td>Salt Lake City</td>
          <td>UT</td>
          <td>Blue</td>
          <td>Red</td>
        </tr>
        <tr>
          <td>Las Vegas</td>
          <td>NV</td>
          <td>Blue</td>
          <td>Pink</td>
        </tr>
      </table>

    </div>
  </div>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

여러 드롭 다운이있는 jQuery "찾기"및 "필터"로 필터링

분류에서Dev

드롭 다운 및 텍스트 상자 각도로 필터링

분류에서Dev

위치, 해시 태그 및 키워드로 필터링하는 Instagram

분류에서Dev

검도 드롭 다운 및 그리드 외부 필터링

분류에서Dev

여러 키워드로 특정 URL을 필터링하는 정규식

분류에서Dev

드롭 다운을 기반으로 테이블 열 각도 js 필터링

분류에서Dev

또는로 키워드 필터링

분류에서Dev

드롭 다운으로 각도를 사용하여 json 데이터 필터링

분류에서Dev

여러 드롭 다운 조건이있는 각도 사용자 지정 필터

분류에서Dev

문자열 데이터를 Python의 키워드로 사용자 정의 된 순서로 분할하고 특정 키워드를 별도로 저장

분류에서Dev

클라이언트 측에서만 선택 드롭 다운 값을 기준으로 도시 카드 필터링

분류에서Dev

DataTable의 특정 열에 대한 드롭 다운 필터

분류에서Dev

드롭 다운을 다른 드롭 다운으로 필터링

분류에서Dev

열 이름으로 행을 필터링하는 드롭 다운 메뉴-Gsheet

분류에서Dev

ElasticSearch-키워드 필드 길이로 쿼리 필터링

분류에서Dev

드롭 다운에 특정 데이터 표시

분류에서Dev

CSV 문자열을 열로 변환하고 Excel에서 특정 키워드로 필터링하는 방법은 무엇입니까?

분류에서Dev

데이터 필터링 여러 드롭 다운 Google 시트

분류에서Dev

드롭 다운 터미널의 투명도 설정이 시작시로드되지 않습니다.

분류에서Dev

특정 드롭 다운 옵션이 선택 될 때까지 필드를 회색으로 표시

분류에서Dev

이전 드롭 다운을 기반으로하는 MVC 필터링 드롭 다운, 코드 재사용

분류에서Dev

이전 드롭 다운을 기반으로하는 MVC 필터링 드롭 다운, 코드 재사용

분류에서Dev

각도를 기준으로 두 개의 드롭 다운 필터링

분류에서Dev

각도를 기준으로 두 개의 드롭 다운 필터링

분류에서Dev

파이썬에서 if 문을 만들기 위해 특정 키워드를 얻기 위해 문자열의 특정 단어를 필터링합니다.

분류에서Dev

각도 6 (검색 별 필터링)에서 선택 드롭 다운을 구현하는 방법, 이름 속성으로 개체를 필터링하는 방법

분류에서Dev

월 및 연도에 대한 드롭 다운이있는 datepicker

분류에서Dev

목록의 여러 값으로 검색 필터 및 드롭 다운 바인딩을 만드는 데 도움이 필요합니다.

분류에서Dev

r 키워드와 일치하는 열로 데이터 프레임 필터링

Related 관련 기사

  1. 1

    여러 드롭 다운이있는 jQuery "찾기"및 "필터"로 필터링

  2. 2

    드롭 다운 및 텍스트 상자 각도로 필터링

  3. 3

    위치, 해시 태그 및 키워드로 필터링하는 Instagram

  4. 4

    검도 드롭 다운 및 그리드 외부 필터링

  5. 5

    여러 키워드로 특정 URL을 필터링하는 정규식

  6. 6

    드롭 다운을 기반으로 테이블 열 각도 js 필터링

  7. 7

    또는로 키워드 필터링

  8. 8

    드롭 다운으로 각도를 사용하여 json 데이터 필터링

  9. 9

    여러 드롭 다운 조건이있는 각도 사용자 지정 필터

  10. 10

    문자열 데이터를 Python의 키워드로 사용자 정의 된 순서로 분할하고 특정 키워드를 별도로 저장

  11. 11

    클라이언트 측에서만 선택 드롭 다운 값을 기준으로 도시 카드 필터링

  12. 12

    DataTable의 특정 열에 대한 드롭 다운 필터

  13. 13

    드롭 다운을 다른 드롭 다운으로 필터링

  14. 14

    열 이름으로 행을 필터링하는 드롭 다운 메뉴-Gsheet

  15. 15

    ElasticSearch-키워드 필드 길이로 쿼리 필터링

  16. 16

    드롭 다운에 특정 데이터 표시

  17. 17

    CSV 문자열을 열로 변환하고 Excel에서 특정 키워드로 필터링하는 방법은 무엇입니까?

  18. 18

    데이터 필터링 여러 드롭 다운 Google 시트

  19. 19

    드롭 다운 터미널의 투명도 설정이 시작시로드되지 않습니다.

  20. 20

    특정 드롭 다운 옵션이 선택 될 때까지 필드를 회색으로 표시

  21. 21

    이전 드롭 다운을 기반으로하는 MVC 필터링 드롭 다운, 코드 재사용

  22. 22

    이전 드롭 다운을 기반으로하는 MVC 필터링 드롭 다운, 코드 재사용

  23. 23

    각도를 기준으로 두 개의 드롭 다운 필터링

  24. 24

    각도를 기준으로 두 개의 드롭 다운 필터링

  25. 25

    파이썬에서 if 문을 만들기 위해 특정 키워드를 얻기 위해 문자열의 특정 단어를 필터링합니다.

  26. 26

    각도 6 (검색 별 필터링)에서 선택 드롭 다운을 구현하는 방법, 이름 속성으로 개체를 필터링하는 방법

  27. 27

    월 및 연도에 대한 드롭 다운이있는 datepicker

  28. 28

    목록의 여러 값으로 검색 필터 및 드롭 다운 바인딩을 만드는 데 도움이 필요합니다.

  29. 29

    r 키워드와 일치하는 열로 데이터 프레임 필터링

뜨겁다태그

보관