I'm trying to use onkeyup function for a text input and search for Patient Names from column 2. But it it doesn't work at all and doesn't give results in return. I've also added the snippets below.
My table
<table id="table" width="100%">
<tbody>
<tr class="table-heading">
<td>
<div>
<p>ID</p>
</div>
</td>
<td>
<div>
<p>Patient name</p>
</div>
</td>
<td>
<div>
<p>NIC</p>
</div>
</td>
<td>
<div>
<p>Date of Birth</p>
</div>
</td>
<td>
<div>
<p>Address.</p>
</div>
</td>
<td>
<div>
<p>Username</p>
</div>
</td>
<td>
<div>
<p>Status</p>
</div>
</td>
</tr>
<div class="grid">
<tr>
<td>
<div>
<p>1</p>
</div>
</td>
<td>
<div>
<p>Kumar K</p>
</div>
</td>
<td>
<div>
<p>654561</p>
</div>
</td>
<td>
<div>
<p>1995-05-21</p>
</div>
</td>
<td>
<div>
<p>the avenue</p>
</div>
</td>
<td>
<div>
<p>random</p>
</div>
</td>
<td>
<div>
<p>active</p>
</div>
</td>
</tr>
<tr>
<td>
<div>
<p>2</p>
</div>
</td>
<td>
<div>
<p>Ravi R</p>
</div>
</td>
<td>
<div>
<p>98741262</p>
</div>
</td>
<td>
<div>
<p>1996-05-22</p>
</div>
</td>
<td>
<div>
<p>the street</p>
</div>
</td>
<td>
<div>
<p>real</p>
</div>
</td>
<td>
<div>
<p>inactive</p>
</div>
</td>
</tr>
<tr>
<td>
<div>
<p>3</p>
</div>
</td>
<td>
<div>
<p>Sanjay U</p>
</div>
</td>
<td>
<div>
<p>575305</p>
</div>
</td>
<td>
<div>
<p>1993-05-28</p>
</div>
</td>
<td>
<div>
<p>the house</p>
</div>
</td>
<td>
<div>
<p>normal</p>
</div>
</td>
<td>
<div>
<p>active</p>
</div>
</td>
</tr>
</div>
</tbody>
My input box
<input type="text" name="search" id="search" placeholder="Search here...." >
My JavaScript
document.getElementById("search").onkeyup = function() {
let filter = document.getElementById('search').value.toUpperCase();
let table = document.getElementById('table');
let tr = table.getElementsByTagName('tr');
for(var i=0; i<tr.length; i++){
let td = tr[i].getElementsByTagName('td')[1].innerText;
if(td){
let textValue = td.textContent || td.innerText;
if(textValue.toUpperCase().indexOf(filter) > -1){
tr[i].style.display = "";
}
else{
tr[i]style.display = "none";
}
}
}
}
document.getElementById("search").onkeyup = function() {
let filter = document.getElementById('search').value.toUpperCase();
let table = document.getElementById('table');
let tr = table.getElementsByTagName('tr');
for(var i=0; i<tr.length; i++){
let td = tr[i].getElementsByTagName('td')[1].innerText;
if(td){
let textValue = td.textContent || td.innerText;
if(textValue.toUpperCase().indexOf(filter) > -1){
tr[i].style.display = "";
}
else{
tr[i]style.display = "none";
}
}
}
}
<input type="text" name="search" id="search" placeholder="Search here...." >
<table id="table" width="100%">
<tbody>
<tr class="table-heading">
<td>
<div>
<p>ID</p>
</div>
</td>
<td>
<div>
<p>Patient name</p>
</div>
</td>
<td>
<div>
<p>NIC</p>
</div>
</td>
<td>
<div>
<p>Date of Birth</p>
</div>
</td>
<td>
<div>
<p>Address.</p>
</div>
</td>
<td>
<div>
<p>Username</p>
</div>
</td>
<td>
<div>
<p>Status</p>
</div>
</td>
</tr>
<div class="grid">
<tr>
<td>
<div>
<p>1</p>
</div>
</td>
<td>
<div>
<p>Kumar K</p>
</div>
</td>
<td>
<div>
<p>654561</p>
</div>
</td>
<td>
<div>
<p>1995-05-21</p>
</div>
</td>
<td>
<div>
<p>the avenue</p>
</div>
</td>
<td>
<div>
<p>random</p>
</div>
</td>
<td>
<div>
<p>active</p>
</div>
</td>
</tr>
<tr>
<td>
<div>
<p>2</p>
</div>
</td>
<td>
<div>
<p>Ravi R</p>
</div>
</td>
<td>
<div>
<p>98741262</p>
</div>
</td>
<td>
<div>
<p>1996-05-22</p>
</div>
</td>
<td>
<div>
<p>the street</p>
</div>
</td>
<td>
<div>
<p>real</p>
</div>
</td>
<td>
<div>
<p>inactive</p>
</div>
</td>
</tr>
<tr>
<td>
<div>
<p>3</p>
</div>
</td>
<td>
<div>
<p>Sanjay U</p>
</div>
</td>
<td>
<div>
<p>575305</p>
</div>
</td>
<td>
<div>
<p>1993-05-28</p>
</div>
</td>
<td>
<div>
<p>the house</p>
</div>
</td>
<td>
<div>
<p>normal</p>
</div>
</td>
<td>
<div>
<p>active</p>
</div>
</td>
</tr>
</div>
</tbody>
</table>